Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous. J'ai commencé par suivre quelques tutos et j'ai décidé de voler de mes propres ailes maintenant. Je n'arrête pas de me hurter à des problèmes.
Je cherchais un moyen d'effectuer une vérification sur mot de passe pour un module d'inscription de membre. Apparemment cette classe n'existerait pas sur Zend, et j'ai donc décidé de la développer moi même.
Mon application a été créée avec Zend_Tool.
J'ai ajouté à la racine de mon site dans le dossier library un dossier intitulé Issiel. Dedans j'y ai ajouté un repertoire nommé Validate qui contiendra un fichier php nommé SameAs.
Dans mon formulaire, je fais $validate = new Issiel_Validate_SameAs();
Ma classe dans le fichier SameAs.php est bien nommée Issiel_Validate_SameAs.
Que me manque-t-il?
Dernière modification par Issiel (19-04-2010 17:58:19)
Hors ligne
Il ne te manque rien si tu n'as pas d'erreur
Si tu as des erreurs, montre les nous.
Hors ligne
Fatal error: Class 'Issiel_Validate_SameAs' not found in D:\wamp\www\projetz\application\forms\Register.php on line 36
^^ Il ne la trouve pas. J'ai fais un echo get_include_path(); si tu veux. Il donne ceci :
D:\wamp\www\projetz\application/../library;D:\wamp\www\projetz\library;d:\wamp\www\projetz\library;.
Mmmm je pense que tu es le gars qui m'a aidé sur le sdz ^^
Ta classe marche bien quand je l'inclue manuellement cependant si je ne fais pas le require_once devant ça ne va plus.
Dernière modification par Issiel (19-04-2010 16:45:01)
Hors ligne
As-tu configuré ton autoload ?
Par exemple, chez moi j'ai :
Zend_Loader_Autoloader::getInstance()->registerNamespace('JR_');
Edit : oui c'est moi celui du SdZ
Dernière modification par Blount (19-04-2010 16:50:16)
Hors ligne
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initAutoload() {
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Issiel_',
'basePath' => APPLICATION_PATH));
return $moduleLoader;
}
}
J'ai modifié mon bootstrap de cette manière sans résultat. L'erreur reste la même.
Hors ligne
Bon je récapitule...
Fichier .ini :
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.date.timezone = "Europe/Paris"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.layout.layoutpath = APPLICATION_PATH "/layouts"
resources.frontController.params.displayExceptions = 1
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =
resources.db.params.dbname = projetz
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
Ma structure :
/application
/configs
/controllers
/forms
/layouts
/models
/views
Bootstrap.php
/library
/Issiel
/Validate
SameAs.php
/public
index.php
Mon fichier SameAs.php
class Issiel_Validate_SameAs extends Zend_Validate_Abstract {
public function __construct(Zend_Form_Element $field = null)
{
}
Mon bootstrap
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initAutoload() {
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH));
return $moduleLoader;
}
Si vous avez besoin d'autres informations n'hésitez pas.
Hors ligne
Tu n'as pas plutot un index.php qui contiendrait "Zend_Loader_Autoloader::getInstance()" ???
Hors ligne
Non :s
La structure s'est faite toute seule quand j'ai utilisé Zend_Tool.
L'autoload marche pour les classes dans Zend... Mais pas les miennes visiblement.
Hors ligne
J'ai modifié mon bootstrap en fait...
Je ne sais pas trop pourquoi cela ne fonctionnait pas avant.
J'ai donc fait comme vous me l'avez dit :
protected function _initAutoload()
{
Zend_Loader_Autoloader::getInstance()->registerNamespace('Issiel_');
}
Ma classe est appelée... Avec pleins d'erreurs, place au débugage. Merci à ceux qui ont cherché à m'aider.
Hors ligne