Auto chargement des classes : Différence entre versions
(Page créée avec « A partir de la version 1.5.3.3 il n'est plus nécessaire d'inclure les classes dans les fichiers où on les utilise. Typiquement, il n'est plus nécessaire dans un plugin... ») |
|||
Ligne 46 : | Ligne 46 : | ||
Autoload::getInstance()->addDirectory("...")->addDirectories(array("...","..."))->addDirectory('...'); | Autoload::getInstance()->addDirectory("...")->addDirectories(array("...","..."))->addDirectory('...'); | ||
</pre> | </pre> | ||
+ | |||
+ | '''ATTENTION''' | ||
+ | |||
+ | Si vous souhaitez que vos plugins restent compatibles avec les versions inférieur à Thelia 1.5.3.3 vous devez continuer à inclure les classes dont vous vous servez comme c'est le cas actuellement |
Version actuelle en date du 25 septembre 2012 à 17:11
A partir de la version 1.5.3.3 il n'est plus nécessaire d'inclure les classes dans les fichiers où on les utilise.
Typiquement, il n'est plus nécessaire dans un plugin d'inclure le fichier PluginsClassiques.class.php
Avant Thelia 1.5.3.3 la déclaration d'un plugin se faisait comme suit :
include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php"); class MonPlugin extends PluginsClassiques { }
A partir de Thelia 1.5.3.3 la déclaration d'un plugin se fera de la manière suivante :
class MonPlugin extends PluginsClassiques { }
L'autoloader va chercher de base dans les répertoires suivants :
- /classes/
- /classes/actions/
- /classes/filtres/
- /classes/parseur/
- /classes/tlog/
- /classes/tlog/destinations
si vous souhaitez dans votre plugin rajouter des dossiers dans lesquels vous avez placé vos propres classes, par exemple dans le répertoire classes du plugin :
Autoload::getInstance()->addDirectory(__DIR__ . "/classes/"); ou bien si il y a plusieurs dossiers : Autoload::getInstance()->addDirectories(array('répartoire1', 'répertoire2')); class MonPlugin extends PluginsClassiques { }
La classe Autoload autorise à chainer les appels aux méthodes getInstance, addDirectory et addDirectories. Il est donc possible de réaliser le code suivant :
Autoload::getInstance()->addDirectory("...")->addDirectories(array("...","..."))->addDirectory('...');
ATTENTION
Si vous souhaitez que vos plugins restent compatibles avec les versions inférieur à Thelia 1.5.3.3 vous devez continuer à inclure les classes dont vous vous servez comme c'est le cas actuellement