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

Zend Framework PHP Discussion :

[Zend_Controller] Fichier Bootstrap à la racine de l'appli ou ds le fichier public ? [Fait]


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut [Zend_Controller] Fichier Bootstrap à la racine de l'appli ou ds le fichier public ?
    Bonjour à tous,

    J'ai suivi le tutoriel de developpez.com "Débuter avec le Zend Framework (approche MVC)" dans lequel il est indiqué de mettre le bootstrap dans à la racine de l'application.

    D'autres tutos proposent de le mettre dans le fichier public (ou html, htdocs, selon le nom que l'on donne).

    Quel est l'avantage du deuxième exemple par rapport au premier?

    J'ai également vu qu'il est conseiller de n'avoir que le fichier public dans la zone accessible depuis le web. Dans ce cas, on est obligé d'utiliser la deuxième méthode non?

    Je vous remercie d'avance pour les éclaircissements que vous pourrez me donner.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Ce tuto est un exemple simplissime d'application MVC avec Zend Framework. Il ne met pas en pratique les bonnes méthodes de programmation.
    Tu devrais plutôt envisager une structure comme indiqué ici (attention, document en cours d'écriture) : http://framework.zend.com/wiki/displ...ClassSkeletons
    Ou ici : http://framework.zend.com/wiki/displ...rectory+Layout

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Merci pour ces liens, j'avais déjà vu la page du deuxième et c'est justement vers ça que je souhaite me diriger.

    cad, Avoir un fichier index dans le répertoire public avec une include vers le bootstrap qui se trouve dans le répertoire application.
    Mais je n'arrive pas à le faire marcher. Particulièrement dans le path ou je doit mettre ../application partout non?

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Je m'en suis enfin sorti et voilà comment j'ai fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    site1/
      /application
        /models
        /modules
          /album
            /controllers
            /views
              /scripts
               /index
      /html
        index.php (le bootstrap)
      /library
    et voilà le code que j'ai mis dans le fichier index.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
    36
    37
    38
    <?php
    error_reporting(E_ALL|E_STRICT);
    date_default_timezone_set('Europe/Paris');
    set_include_path('.'
        . PATH_SEPARATOR . realpath('./../library')
        . PATH_SEPARATOR . realpath('./../application/models/')
        . PATH_SEPARATOR . get_include_path());
     
    include "Zend/Loader.php";
    //Zend_Loader::registerAutoload();
    Zend_Loader::loadClass('Zend_Controller_Front');
    Zend_Loader::loadClass('Zend_Config_Ini');
    Zend_Loader::loadClass('Zend_Registry');
    Zend_Loader::loadClass('Zend_Db');
    Zend_Loader::loadClass('Zend_Db_Table');
     
     
    // load configuration
    $config = new Zend_Config_Ini('./../application/config.ini', 'general');
    $registry = Zend_Registry::getInstance();
    $registry->set('config', $config);
     
    // setup database
    $db = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($db);
     
    // setup controller
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->throwExceptions(true);
    $frontController->setBaseUrl('/site1/');
    //$frontController->setControllerDirectory('./../application/controllers');
    $frontController->setControllerDirectory(array(
          'album'    => './../application/modules/album/controllers'
    ));
    $frontController->addModuleDirectory('./../application/modules');
     
    // run!
    $frontController->dispatch();
    Mon serveur apache est ensuite configuré pour pointer directement dans le fichier html (xxx.xxx.xxx.xxx/site1/album/ => page d'index du module album)

    Je ne sais pas s'il y a des choses aberrantes dans mon bootstrap. Si ce n'est pas le cas, j'espère que ça pourra aider d'autres personnes.

    J'attends donc votre avis.

    Merci d'avance.

  5. #5
    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
    Salut,

    Je ne vois pas de dossier "public" ou "htocs" qui contiendrait tes images, tes fichiers css, etc. Peut être est-ce le rôle du dossier "html" ? Personnellement je ne lui donnerai pas ce nom, ça prête à confusion

    Pour le reste, cela semble correct.

    Bonne continuation.

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Habituellement, on place les modèles à l'intérieur de chaque module. Tu peux également avoir un répertoire models partagé entre tes modules, mais je crois qu'il faut les deux.

  7. #7
    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
    Citation Envoyé par Yogui Voir le message
    Habituellement, on place les modèles à l'intérieur de chaque module. Tu peux également avoir un répertoire models partagé entre tes modules, mais je crois qu'il faut les deux.
    Je suis d'accord avec cette proposition, mais histoire d'être sûr que j'ai bien compris : dans chaque sous-dossier model, tu mets les modèles propres au controlleur parent (par ex., si tu as un module News, tu vas mettre un modèle News), dans le dossier modèle parent tu mets par ex. le modèle Member, qui est utilisé par les modules News et Articles. C'est comme ça que tu vois le truc ?


  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oui.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Janitrix => Oui, dans mon cas, le fichier public est la fichier html mais tu as en effet raison sur le fait que ce nom ne soit pas approprié.

    Pour les répertoires des models, je n'ai pas du tout d'experience sur ZF ni sur les MVC, je ne sais donc pas concrètement comment utilisé cette couche.
    Pour moi, j'avais juste l'impression que les models sont les accès aux bases, étant donné que depuis presque tous les modules, je devrais accéder à presque toutes les tables, je comptais mettre tous les models dans le même répertoire.

    Pour moi cela n'est pas encore très clair...

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

Discussions similaires

  1. 2 applis pour 1 seul fichier log avec log4j
    Par doudou13 dans le forum Logging
    Réponses: 5
    Dernier message: 12/12/2010, 16h44
  2. Réponses: 5
    Dernier message: 02/03/2009, 15h10
  3. Appli dispatchées avec un fichier config unique pour toutes?
    Par nerillis dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/05/2007, 11h43
  4. Réponses: 10
    Dernier message: 03/01/2007, 17h40
  5. Intégrer un appli clique droit sur fichier
    Par ducseb dans le forum Windows XP
    Réponses: 1
    Dernier message: 13/12/2006, 21h17

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