IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

comportement require "" étonnant ?


Sujet :

MVC PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Par défaut comportement require "" étonnant ?
    Bonsoir à 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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		//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'

    De quelle manière zend regarde-t-il dans le sous dossier de models et nono pas de controllers ????

    (je sais pas si j'ai été très clair.... )

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut Méthode
    Salut,

    Voila j'espère que je vais répondre à ta question car j'ai pas très bien compris.

    En général les formulaires tu devrait les placer ds un dossier application/forms/Controller.php je te donne ma méthode me c'est pas obligatoire, la partie models est reservée en général à accès au base de donnée.

    Avec Zend on ne fait pas de require enfin on utilise pas cette function, on utilise autoloader qui charge automatique les classes.

    Dans le bootstrap rajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            /**
    	 * Chargement automatique des classes
    	 */
    	protected function _initAutoLoad()
    	{
    		$autoloader = new Zend_Application_Module_Autoloader(array(
        		'namespace' => 'APP_',
        		'basePath' => dirname(__FILE__),
        	));
     
        	return $autoloader;
    	}
    au niveau du namespace tu peut choisir ce que tu veut me la je fais mis APP_.

    Après dans ton classe formulaires application/forms/Account.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
    25
     
    class APP_Form_Accounts extends Zend_Form
    {
     
    	public function login()
    	{
    		$this->setMethod('post');
     
    		$this->addElement('text', 'pseudo', Array(
    			'label' => 'Pseudo',
    			'required' => true,
    			'filters' => array('StringTrim', 'StringToLower'),
    		));
     
    		//Element Mot de passe
    		$this->addElement('password', 'password', Array(
    			'label' => 'Password',
    			'required' => true,
     
    		));
     
                   return $this; 
               }
     
    }
    Puis dans ton controller tu fait simplement
    $form = new APP_Form_Accounts(); sans require
    on va chercher le fichier ds le dossier forms/Accounts.php

    Voila j'espère que j'ai répondu à ta question

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo