Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
En train d'apprendre à utiliser le ZF (1.9.3 sous la main), je m'appuie sur un ouvrage APRESS.
Pour réaliser ses propres formulaires dans le détail il est expliqué l'usage de Zend_Form_Element_Text, notamment la description d'un élément dans \application\models\form\Elements.php.
//Create Text Field Object. $emailElement = new Zend_Form_Element_Text( 'email' ); $emailElement->setLabel( 'Adresse e-mail :' ); $emailElement->setRequired( true ); //Add Validator $emailElement->addValidator( new Zend_Validate_EmailAddress() ); //Add Filter $emailElement->addFilter( new Zend_Filter_HtmlEntities() ); $emailElement->addFilter( new Zend_Filter_StripTags() ); return $emailElement;
Mon souci :
Il m'est proposé dans un controller donné (\application\controllers\AccountController.php) de faire un require à partir du controller :
require 'form/Elements.php'
Pourquoi Zend regarde-t-il dans le sous dossier models et non pas controllers ?
(je sais pas si j'ai été très clair.... )
Merci par avance pour votre aide
Dernière modification par lesdoudous (24-10-2009 10:17:48)
Hors ligne
C'est quoi ce bouquin ???
Pas besoin de faire de require, l'autoloader s'en charge.
Hors ligne
Par exemple, j'ai créé les choses ainsi :
/controllers
/AccountController.php
/models
/db
Db.php
Bizarrement, pour appeler ma classe Db de mon controleur "AccountController", je dois faire un require_once "Db/Db.php";.
Comment Zend sait ou il doit trouver ca ?
A priori, il devrait regarder dans /controllers, et pourtant il trouve ca dans /models, non ?
Enfin, pour le bouquin, quoi te dire ?
Un ouvrage bien réalisé sur Zend pour débuter. Très didactique !
Hors ligne
Comment il sait ou trouver ca ? C'est assez complex en fait..
Il vaudrait mieux que tu lises le quickstart et/ou la doc sur Zend_Loader{_Autoloader}
En gros, il sait ou les trouver grâce à 2 méthodes :
- via include_path : Il remplace les _ par des /et le moteur PHP fait le boulot (via require)
- via le point précédant + les namespaces : il a un tableau de "préfix" => chemin. Avec ca, il sait comment construire la base du chemin, et combine le reste avec le point précédant.
Hors ligne
Merci
J'ai trouvé une réponse précise en faisant un simple "echo get_include_path();" dans lequel je me suis apercu qu'il y a ceci : "C:\Program Files\Zend\Apache2\htdocs\helloworld\application\models".
CQFD !
Hors ligne