6a26131376844f05707c32612fbc86aef8881581
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
14 * Gestion de l'action purger pour nettoyer le cache
16 * @package SPIP\Core\Cache
18 if (!defined('_ECRIRE_INC_VERSION')) {
23 * Action de purge du cache
25 * L'argument peut être :
27 * - inhibe_cache : inhibe le cache pendant 24h
28 * - reactive_cache : enlève l'inhibition du cache
29 * - cache : nettoie tous les caches (sauf celui des vignettes)
30 * - squelettes : nettoie le cache de compilation des squelettes
31 * - vignettes : nettoie le cache des vignettes (et compressions css/js)
33 * @pipeline_appel trig_purger
34 * @uses supprime_invalideurs()
35 * @uses purger_repertoire()
37 * @param string|null $arg
38 * Argument attendu. En absence utilise l'argument
39 * de l'action sécurisée.
41 function action_purger_dist($arg = null) {
43 $securiser_action = charger_fonction('securiser_action', 'inc');
44 $arg = $securiser_action();
47 include_spip('inc/invalideur');
49 spip_log("purger $arg");
53 // inhiber le cache pendant 24h
54 ecrire_meta('cache_inhib', $_SERVER['REQUEST_TIME'] +
24 * 3600);
56 case 'reactive_cache':
57 effacer_meta('cache_inhib');
61 supprime_invalideurs();
62 @spip_unlink
(_CACHE_RUBRIQUES
);
63 @spip_unlink
(_CACHE_CHEMIN
);
64 @spip_unlink
(_DIR_TMP
. "plugin_xml_cache.gz");
65 // on ne supprime que _CACHE_PLUGINS_OPT qui declenche la reconstruction des 3
66 // _CACHE_PIPELINES _CACHE_PLUGINS_PATH et _CACHE_PLUGINS_FCT
67 // pour eviter des problemes de concurence
68 // cf http://core.spip.net/issues/2989
69 //@spip_unlink(_CACHE_PIPELINES);
70 //@spip_unlink(_CACHE_PLUGINS_PATH);
71 //@spip_unlink(_CACHE_PLUGINS_FCT);
72 @spip_unlink
(_CACHE_PLUGINS_OPT
);
73 purger_repertoire(_DIR_CACHE
, array('subdir' => true));
74 purger_repertoire(_DIR_AIDE
);
75 purger_repertoire(_DIR_VAR
. 'cache-css');
76 purger_repertoire(_DIR_VAR
. 'cache-js');
80 purger_repertoire(_DIR_SKELS
);
84 purger_repertoire(_DIR_VAR
, array('subdir' => true));
85 supprime_invalideurs();
86 purger_repertoire(_DIR_CACHE
, array('subdir' => true));
90 // le faire savoir aux plugins
91 pipeline('trig_purger', $arg);