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 :

objets affichables par les vues


Sujet :

MVC PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 43
    Points
    43
    Par défaut objets affichables par les vues
    Bonjour,

    Je souhaite créer une classe Zend_Liste qui se chargera de la gestion des listes (de produits, personnes et de quasi toutes les entités) de mon application. Les listes comprennent la gestion d'un formulaire de filtrage, de tris, l'extraction des données et tout ceci doit bien entendu être affiché.
    Je me dis qu'à la manière des formulaires Zend_Form mon objet liste va être passé à la vue qui va se charger de son affichage. Or à ce point mes compétences s'arrêtent car je ne connait pas le processus qui fait que la vue transforme l'objet en code html. J'ai bien regardé en débug sur zend studio le process pour les formulaires mais c'est un peu compliqué à mon niveau.
    Je me suis suis dit que les form implémentaient peut être une interface du style "affichable" mais visiblement ce n'est pas le cas.

    Je suis donc preneur de toute piste ou explication.

    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Bon, j'ai bien avancé sur mon problème.
    J'ai créé une classe Zend_Liste mise dans /library/Zend/Liste.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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    class Zend_Liste {
     
    	private $_tabEnreg = array();
    	private $_formTest;
     
    	public function peupler() {
    		/**
    		 * pour les besoins du test on peuple avec des éléments statiques
    		 * un tableau qui contient les données qui sortiront plus tard de la bdd
    		 * un formulaire qui s'occupera du filtrage réduit ici à un bouton submit
    		 */
    		$this->_tabEnreg[] = array('id'=>'1', 'nom'=>'nom1', 'prenom'=>'prenom1');
    		$this->_tabEnreg[] = array('id'=>'2', 'nom'=>'nom2', 'prenom'=>'prenom2');	
    		$this->_tabEnreg[] = array('id'=>'3', 'nom'=>'nom3', 'prenom'=>'prenom3');	
    		$this->_tabEnreg[] = array('id'=>'4', 'nom'=>'nom4', 'prenom'=>'prenom4');
     
    		$this->_formTest = new Zend_Form();
    		$submit = new Zend_Form_Element_Submit("btn test");
    		$this->_formTest->addElement($submit);
    	}
     
    	public function __toString()
        {
        	$content = '<table cellspacing = "5">';
            foreach ($this->_tabEnreg as $row) {
            	$content .= '<tr><td>'.$row['prenom'].'</td><td>'.$row['nom'].'</td></tr>';
            }
            $content .= '</table>';
     
            $content .= $this->_formTest->__toString();
     
            return $content;
        }
     
    }
    Mon controleur instancie un objet Zend_Liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $myliste = new Zend_Liste();
    		$myliste->peupler();
    		$this->view->myliste = $myliste;
    Ma vue fait bien sûr un écho de la variable $myliste.

    et ça fonctionne !

    J'attend quand même des remarques de votre part.

  3. #3
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Il faudrait éviter de mettre tes classes dans le dossier Zend, ne serait-ce que pour la maintenance. Et généralement, quand on créé des classes pour son application, on donne un préfixe personnel, genre "My" ou son nom. Cela permet d'éviter toute confusion entre ce qui fait partie de la bibliothèque et l'application.

    Bon courage.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Le dossier /library/Zend/ fait bien entendu partie de mon application et pas de l'arborescence du code source du framework, on est bien d'accord. J'ai oubblié de préciser en effet...

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2013, 13h28
  2. [Config] [Infoview]:Nbre max d'objets affichés par page
    Par fatima ezzahra dans le forum Administration-Migration
    Réponses: 3
    Dernier message: 06/01/2011, 18h37
  3. Réponses: 1
    Dernier message: 08/07/2009, 14h00
  4. Objets partagés par les noeuds d'un cluster JBoss
    Par jbossdev dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 08/09/2006, 13h48
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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