Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour. J'utilise des classes de validation personnalisées, en plus des validateurs classiques de ZF. Naturellement, je déclare donc mon namespace via la méthode Zend_Validate::addDefaultNamespaces('MonNamespace');
Dès lors, mes validateurs persos sont utilisés sans soucis, mais il m'est impossible d'utiliser les validateurs Zend_Validate, quand bien même j'ai utilisé la méthode "add" et non "set". Soit, j'ajoute le namespace ZF via Zend_Validate::setDefaultNamespaces(array('Zend_Validate', 'MonNamespace'));
Maintenant, les validateurs fonctionnent, mais non sans mal, car je reçois beaucoup de warnings, car Zend_Validate cherche à charger les classes sans vérifier leur existence... Donc, ça me retourne un "PHP Warning: include(Zend/Validate/MonValidateur.php): failed to open stream: No such file or directory in /usr/share/php/Zend/Loader.php on line 83".
Ma question est donc : s'agit-il d'un bug encore non résolu ? Ou d'un choix de design pour ce cas de figure ? Dans ce cas, comment arriver à mes fins, c'est à dire utiliser naturellement des validateurs de plusieurs namespaces.
Merci de vos réponses.
Hors ligne
J'ai corrigé mon problème, d'une façon peu esthétique, en modifiant directement la classe Zend_Loader (qui ne vérifie pas l'existence d'un fichier avant d'inclure une classe) : pour les intéressés, voici la modification, à la ligne 83 :
if(!Zend_Loader::isReadable($file)) { require_once 'Zend/Exception.php'; throw new Zend_Exception("File \"$file\" does not exist"); }
Dernière modification par gordontesos (17-12-2009 14:22:17)
Hors ligne
Je viens d'avoir moi aussi ce "type" de problème. Fais attention à la casse de tes nom de fichiers.
Dans mon cas, j'ai créé une ressource d'application CacheManager dans un fichier CacheManager.php, sauf que le plugin loader cherche Cachemanager.php (en tout cas sous Linux)
Hors ligne
Pages: 1