©
. Document créé le 2 janvier 2008 , mis à jour le 18 juillet 2011.L'idéal quand on veut être admiré, c'est d'être mort. Michel Audiard
Accueil du site > Astuces > SPIP > Accélérer find_in_path()
Pour optimiser les temps d’accès à votre site, il suffit parfois de simplement recopier quelques fichiers au bon endroit.
Lorsque SPIP cherche un fichier dans l’arborescence du site, il fait appel à sa fonction find_in_path().
La balise #CHEMIN et la fonction chemin() (SPIP 2 uniquement) sont des alias de find_in_path().
Cette fonction find_in_path() cherche le fichier dont le nom est donné en paramètre dans divers répertoires, et ceci dans cet ordre pour SPIP 1.9.2 :
En ce qui concerne la globale dossier_squelettes
$GLOBALS['dossier_squelettes'] = 'premiers_squelettes:seconds_squelettes';
la recherche sera effectuée dans l’ordre de déclarations en SPIP 2.1.10 :
De plus, la fonction _chemin() [2] permet de rajouter un chemin de recherche. Cette fonction est pratique pour les plugins qui désirent préciser un chemin de recherche autre que leur propre racine pour les squelettes.
Cette fonction _chemin() peut être appelée plusieurs fois. La recherche sera effectuée dans l’ordre inverse d’utilisation. Par exemple :
_chemin('ici');
_chemin('la');
donnera l’ordre de recherche :
Si vous utilisez pleinement toutes ses options, en SPIP 2.1.10, une recherche sur un fichier sera effectuée par find_in_path() ainsi :
find_in_path() fait donc au minimum le tour de deux répertoires : le dossier ’squelettes’ - indirectement, par appel de la fonction creer_chemin() - et la racine du site avant de trouver le squelette dans le répertoire de distribution ’dist’.
Pour peu que vous ayez créé le répertoire ’squelettes’ et ajouté et défini $dossier_squelettes dans mes_options.php, le temps de recherche est au minimum doublé.
Si vous voulez accélérer la recherche de fichiers, recopiez dans ’squelettes’ ou votre $dossier_squelettes l’ensemble des fichiers présents dans le répertoire de distribution ’dist’ (squelettes-dist en SPIP 2) sera probablement une bonne solution.
Ne pas oublier de supprimer les squelettes de votre répertoire de squelettes s’ils sont personnalisés par un plugin. C’est le cas par exemple de LiLo qui propose son propre squelette ’login.html’.
Quant à l’option d’optimisation proposée par la modification de
@define('_EXTENSION_PHP', '.php3');
#@define('_EXTENSION_PHP', '');
en mettant en commentaire la première ligne et en activant la seconde dans inc_version.php , elle ne concerne que les appels à include_spip().
[1] Si besoin, lire le paragraphe consacré à cette globale $dossier_squelettes sur spip.net
[2] La documentation sur _chemin() est disponible sur doc.spip.org.
Les forums sont fermés.