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 :

Créer un tableau avec Zend


Sujet :

MVC PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut Créer un tableau avec Zend
    Bonjour,
    Je veux créer une petite application avec Zend.
    Avant, lorsque j'ai travaillé sans framework, en utilisant HTML et php, je divise ma page en tableaux pour bien la mettre en forme.
    Mais, je me trouve bloquer en utilisant Zend, je n'arrive pas à créer un tableau, et mettre dedans un 'text', 'radio', 'checkbox',...comme le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <body>
    <table>
    	<tr>
    		<td>Nom: <input type="text" value="txt_name" /></td>
    		<td><input type="submit" /></td>
    	</tr>
    </table>
    </body>
    Comment je peux alors faire ça avec Zend?
    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Points : 194
    Points
    194

  3. #3
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par salmoucha Voir le message
    Avant, lorsque j'ai travaillé sans framework, en utilisant HTML et php, je divise ma page en tableaux pour bien la mettre en forme.
    C'est bien tu essayes de suivre des bonnes pratiques de programmation coté serveur en utilisant ZF, mais apparamment tu fais tout le contraire coté client.

    A mon sens, c'est une aberration de générer des balises html depuis php, ça n'est pas son but. Dans MVC, tu as V pour View, c'est la que doit être ton code html avec le moins de code php possible.

    De plus, autant la séparation des couches en php n'est pas obligatoire, autant coté client, tu dois clairement séparer tes 3 couches, typiquement tu dois avoir un fichier html, un fichier css et un fichier js
    ex :
    index.html
    index.css
    index.js

    Ensuite, on ne fait plus de mise en page en tableau depuis xhtml donc 2000, alors fait toi une raison tout de suite et si tu cherches le pourquoi du comment, je te renvois vers des sites comme developpez.com openweb qui t'expliqueront mieux que moi en quoi la mise en page en tableau est néfaste et obsolète.

    En conclusion, je dirais qu'on ne peut être un bon développeur php si on n'est pas un bon développeur coté client.

    Cordialement.

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci bcp pour vos aides.
    Mais, si je t'ai bien compris nicolas, est ce que je dois créer mes pages Modèles et Contrôles puis l'affichage se fait avec View tout simplement?

    D'accord, prenons un exemple:
    J'ai une base de données contenant une table "facture". Je veux créer un tableau contenant tous les détailles d'une facture en choisissant son identifiant à partir d'une liste découlante.

    Alors, ma requête de sélection je l'écrit dans le Modèle et le tableau je le crée par des balises HTML dans la View? si oui, c'est quoi le rôle du Contrôle ici?

    Merci bcpppp

  5. #5
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Non c'est le controleur qui réalise les actions, dans ton cas la sélection d'un facture à partir du modèle ( ta base de données représentée par un classe dans le répertoire "model") et l'affichage se fait dans le vue :

    models/Facture.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    class Facture extends Zend_Db_Table
    {
        protected $_name = 'facture';
    }
    controllers/IndexController.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
    class IndexController extends Zend_Controller_Action
    {
        function init()
        {
            // chargement de la configuration : paramètres de base de données plus chemin des fichiers
            $dbConfig 	= new Zend_Config_Ini('./application/config.ini', 'database');
            $path 		= new Zend_Config_Ini('./application/config.ini', 'path');
     
            // connexion bdd
            $this->db = Zend_Db::factory($dbConfig->db);
            Zend_Db_Table::setDefaultAdapter($this->db);
        }
     
        function indexAction()
        {
            /* ici tu interroge ta bdd et tu récupères les champs qui t'intéresse que tu stockes dans des variables par exemple $facture_id et $client_name*/
            $this->view->facture_id = $facture_id;
            $this->view->client_name = $client_name;
        }
    }
    views/scripts/index/index.phtml :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <title>ZF</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <table>
            <tr>
                <th>numero de facture</th>
                <th>nom du client</th>
            </tr>
            <tr>
                <td><?php echo $this->facture_id ?></td>
                <td><?php echo $this->client_name ?></td>
            </tr>
        </table>
    </body>
    </html>

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci infiniment nicolas.
    Mais excuse moi, voici mon architecture de l'application:

    app_mvc_zend
    /Application
    //config.ini
    //models
    ///Facture.php
    //views
    ///scripts
    ////index
    /////index.phtml
    //controllers
    ///IndexController.php
    //index.php

    1) Est ce qu'il manque quelque chose? car il ne fonctionne pas!!!
    2)Est ce que je dois toujours créer une page "index.php", à quoi ça serre et qu'est ce qu'il doit contenir?

    Merci

  7. #7
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par salmoucha Voir le message
    voici mon architecture de l'application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    app_mvc_zend
        /Application
            config.ini
            /models
                Facture.php
            /views
                /scripts
                     /index
                          index.phtml
           /controllers
                IndexController.php
           index.php
    1) Est ce qu'il manque quelque chose? car il ne fonctionne pas!!!
    il n'y a pas une façon de faire, mais la tienne n'est pas optimale du tout.
    voir ici http://framework.zend.com/wiki/displ...rectory+Layout
    pour plus de détails.
    Citation Envoyé par salmoucha Voir le message
    2)Est ce que je dois toujours créer une page "index.php", à quoi ça serre et qu'est ce qu'il doit contenir?
    Pas forcément de ce nom là mais c'est plus simple, c'est ce qu'on appelle le bootstrap ou point d'entré de ton application web, typiquement il contient au minimum quelque chose comme ça :
    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
    <?php
    error_reporting(E_ALL|E_STRICT);// affiche toutes les erreurs
    date_default_timezone_set('Europe/Paris');// choix du fuseau horaire
    set_include_path(	'.'						. PATH_SEPARATOR .
    					'./library'				. PATH_SEPARATOR .
    					'./application/models/'	. PATH_SEPARATOR .
    					get_include_path() );//ajout de dossier à l'INCLUDE_PATH
     
    // autochargement de classe : plus besoin d'include()
    include "Zend/Loader.php";
    Zend_Loader::registerAutoload();
     
    // démarrage des sessions
    Zend_Session::start();
     
    Zend_Controller_Front::getInstance()->throwExceptions(true);
    Zend_Controller_Front::run('./application/controllers');

  8. #8
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Toujours, il n'affiche rien!!!
    Je pense qu'il n'a pas fait la connexion à la base de données.
    Est ce que la connexion à la base dans ce cas se fait à travers le fichier config.ini? ou c'est une table normale sur phpmyadmin?

  9. #9
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Disons que dans mon cas, je récupère les identifiants de connexion à ma base de données dans un un fichier ini
    ex : config.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [database]
    db.adapter = PDO_MYSQL
    db.params.host = localhost
    db.params.username = root
    db.params.password =
    db.params.dbname = forum

  10. #10
    Membre habitué Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Points : 134
    Points
    134
    Par défaut
    Bonsoir,

    je suis tombé sur ce topic en cherchant à en connaître un peu plus sur Zend et en voyant le code de nicolas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function indexAction()
        {
            /* ici tu interroge ta bdd et tu récupères les champs qui t'intéresse que tu stockes dans des variables par exemple $facture_id et $client_name*/
            $this->view->facture_id = $facture_id;
            $this->view->client_name = $client_name;
        }
    Je me demande où est ce que les variables $facture_id et $client_name ont été déclarées ? Dans un classe parente ?

    Je me demandais aussi si on été obligé de passer les params de config via un fichier.ini ?

  11. #11
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Ce code est écrit dans le controleur qui fait la liaison entre le modèle et la vue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->view->facture_id = $facture_id;
    pour la 1ere partie: $this->view->facture_id, facture_id est une variable envoyée du contrôleur à la vue
    pour la 2ere partie: $facture_id, c'est soit une variable qui se trouve dans le modèle soit un champs "facture_id" qui se trouve dans ta BD.

  12. #12
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    les paramètres de configuration, tu peux les mettre dans un fichier .ini soit dans un fichier XML

  13. #13
    Membre habitué Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Points : 134
    Points
    134
    Par défaut
    A ok, merci d'avoir pris le temps de me répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un tableau avec "retrait à gauche"
    Par HomoErectus dans le forum VBA Word
    Réponses: 5
    Dernier message: 09/02/2009, 15h52
  2. installer et créer un exemple avec zend
    Par Invité dans le forum Zend Framework
    Réponses: 6
    Dernier message: 09/09/2008, 17h58
  3. Créer un tableau avec les graphes
    Par romero2008 dans le forum Pascal
    Réponses: 6
    Dernier message: 25/04/2008, 22h30
  4. Créer un tableau avec access comme sur les pages web
    Par celiaaa dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/06/2007, 22h53
  5. Réponses: 2
    Dernier message: 15/12/2006, 14h22

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