Bonjour,
Je débute dans l'utilisation de ZF. J'ai créé mon application grâce à ZF_Tool, ainsi que mes contrôleurs et actions. J'ai ensuite modifié tout ça, intégré mon layout... Tout ça marche bien.
Par contre ça se gâte quand j'essaie d'intégrer mon formulaire, défini dans le fichier /application/forms/FormContact.php :
Et quand j'essaie de l'instancier dans mon contrôleur, j'obtiens une page blanche (même pas un message d'erreur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php class FormContact extends Zend_Form { public function __contruct($options = null) { parent::__contruct($options); $this->setName("contact"); $name = new Zend_Form_Element_Text("name"); $name->setLabel("Nom") ->setrequired(true) ->addFilter("StripTags") ->addFilter("StringTrim") ->addValidator("NotEmpty"); $email = new Zend_Form_Element_Text("email"); $email->setLabel("Adresse e-mail") ->setrequired(true) ->addFilter("StripTags") ->addFilter("StringTrim") ->addValidator("NotEmpty") ->addValidator("EmailAdress"); $message = new Zend_Form_Element_Textarea("message"); $message->setLabel("Votre message") ->setrequired(true) ->addFilter("StripTags") ->addFilter("StringTrim") ->addValidator("NotEmpty"); $submit = new Zend_Form_Element_Submit("submit"); $submit->setAttrib("id", "submitbutton") ->setLabel("Envoyer"); $this->addElements(array($name, $email, $message, $submit) } }
Voici les fichiers importants de mon application :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function indexAction() { $this->view->title = "Nous contacter"; $form = new FormContact(); // CA PLANTE ICI $this->view->form = $form; }
application.ini
Bootstrap.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 [production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" resources.view[] = resources.db.adapter = PDO_MYSQL resources.db.params.host = localhost resources.db.params.username = ***** resources.db.params.password = ***** resources.db.params.dbname = ***** [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.db.adapter = PDO_MYSQL resources.db.params.host = localhost resources.db.params.username = ***** resources.db.params.password = ***** resources.db.params.dbname = *****
J'avoue que autant la structure présentée dans le tuto d'introduction (mais qui date de la version 1.5) était claire pour moi, autant Zend_Application ne l'est pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { /** * Activate session handling. */ protected function _initSession() { Zend_Session::start(); Zend_Session::setOptions(array('strict'=>'on')); } /** * Activate autoload and defines namespaces. */ protected function _initAutoload() { $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH)); return $moduleLoader; } /** * Load configuration file */ protected function _initConfig() { $registry = Zend_Registry::getInstance(); // load config sci.ini if (! $registry->isRegistered('sci')) { $sci = new Zend_Config_Ini(APPLICATION_PATH.'/configs/sci.ini', APPLICATION_ENV); $registry->set('sci', $sci); } } }
Merci d'avance à celui (ou ceux) qui m'aideront à y voir plus clair ici...
Partager