Je sais que je dois utiliser spl_autoload_register avec Smarty 3. J'enregistre ma fonction de chargement automatique après l'initialisation de smarty. Mais smarty essaie d'utiliser ma propre fonction de chargement automatique au lieu de la fonction smartyAutoload définie. Provoquer une erreur, car il ne peut évidemment pas trouver les fichiers smarty en utilisant mon autoload. Voici le code avec tout le reste découpé pour montrer comment il est mis en place actuellement. Je suis sûr que c'est juste un problème de placement de commande ou quelque chose comme ça.Smarty 3 et spl_autoload_register
<?php
class application {
// include smarty
require_once(SMARTY_DIR.'Smarty.class.php');
// init controller class which initializes smarty
$controller = new Controller();
}
function autoLoader($class) {
// determine what type class it is and call from that directory
$dir = strtolower(strstr($class, '_', true));
$name = substr(strtolower(strstr($class, '_')), 1);
switch($dir) {
case 'component':
break;
default:
require_once(LIB_PATH.DS.$name.'.class.php');
break;
}
}
spl_autoload_register("autoLoader");
?>
peut-être un bug Smarty? Je suis tombé sur le même problème, mais en fait trouvé que le chargeur automatique Smarty allait bien. Il ne trouvait tout simplement pas la classe qu'il cherchait, et a donc passé l'appel à mon autoloader à la place. Mon autochargeur déclenche une erreur lorsque le fichier n'est pas trouvé, mais pas le Smarty. – cartbeforehorse