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 :

[1.9.4] Nommage des views/action et des répertoires


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif

    Homme Profil pro
    Concepteur d'applications web
    Inscrit en
    Avril 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Concepteur d'applications web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2003
    Messages : 102
    Par défaut [1.9.4] Nommage des views/action et des répertoires
    Bonjour,

    je suis novice sur ZF mais j'ai déjà fais quelques tests sur d'anciennes versions du framework. Auparavant je n'avait pas eu le problème que je rencontre aujourd'hui lors de la création de mon projet [Edit] Il est possible que je n'avais pas testé les actions nommées en camelCase [/Edit] :

    J'utilise le shell "zf" pour générer mon projet via les lignes de commandes suivantes :
    zf create project ZendBDLibre
    zf create controller AdminList
    zf create action selectList AdminList
    zf create action editList AdminList
    zf create action contentList AdminList
    zf create action deleteList AdminList
    zf create view AdminList selectList
    zf create view AdminList editList
    zf create view AdminList contentList

    Maintenant je veux tester que tout fonctionne j'ouvre donc mon navigateur et je test les urls suivantes :
    localhost/ZendBDLibre/public/ => ok
    localhost/ZendBDLibre/public/AdminList => nok
    An error occurred
    Application error
    Exception information:

    Message: script 'admin-list/index.phtml' not found in path (C:\wamp\www\ZendBDLibre\application\views\scripts\)
    Stack trace:

    #0 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\View\Abstract.php(829): Zend_View_Abstract->_script('admin-list/inde...')
    #1 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(903): Zend_View_Abstract->render('admin-list/inde...')
    #2 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(924): Zend_Controller_Action_Helper_ViewRenderer->renderScript('admin-list/inde...', NULL)
    #3 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action\Helper\ViewRenderer.php(963): Zend_Controller_Action_Helper_ViewRenderer->render()
    #4 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action\HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
    #5 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action.php(523): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
    #6 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('indexAction')
    #7 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #8 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch()
    #9 C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run()
    #10 C:\wamp\www\ZendBDLibre\public\index.php(26): Zend_Application->run()
    #11 {main}

    Request Parameters:

    array (
    'controller' => 'AdminList',
    'action' => 'index',
    'module' => 'default',
    )
    On voit très bien le problème, j'ai créé un controller "AdminList", et le framework cherche une vue située dans un répertoire "admin-list".
    D'où vient ce "-" ? je n'en veux pas et je n'avais pas ce problème avec de vieilles versions du ZF.
    J'ai tenté un grep dans le répertoire mais rien ne fais allusion à "admin-list"

    Une îdée ? quelle bétise je fais ? ou qu'ai je oublié ?
    Merci


    [Edit1]
    je remarque que je n'ai pas ce problème si je retire toutes les majuscules des noms de controllers/actions/views.
    Y a t il une convention à ce sujet ?
    [/Edit1]

    [Edit2]
    Après vérification, c'est la méthode getViewScript du Zend_Controller_Action qui se charge de renommer les actions sous camelCase avec du tiret. Ce fonctionnement existe même au moins depuis la 1.6 du framework.

    En fait on voit que l'application utilise Zend_Loader_PluginLoader dont le contenu est une liste de filtre dont Zend_Filter_Word_CamelCaseToDash sur le controller.

    1: je vais chercher sur la doc officielle pour trouver un moyen de configurer ça.
    2: Je me pose donc la question suivante : pourquoi Zend_Tool ne tient pas compte de ça ? ça ne sert à rien de créer des vues dans des répertoires en camelCase si on a un filtre CamelCaseToDash de configuré par défaut.
    [/Edit2]

  2. #2
    Membre actif

    Homme Profil pro
    Concepteur d'applications web
    Inscrit en
    Avril 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Concepteur d'applications web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2003
    Messages : 102
    Par défaut
    Voilà la réponse que j'ai trouvé :
    http://framework.zend.com/manual/en/...oneohtoonefive

    Donc quand j'utilise Zend_Tool, il faudrait donc que je fasse (mais pourquoi Zend_Tool ne le fais pas lui-même...) :

    zf create project ZendBDLibre
    zf create controller AdminList
    zf create action selectList AdminList
    zf create action editList AdminList
    zf create action contentList AdminList
    zf create action deleteList AdminList
    zf create view Admin-List selectList
    zf create view Admin-List editList
    zf create view Admin-List contentList


    Je test ça et je mettrais à jour le post en fonction

  3. #3
    Membre actif

    Homme Profil pro
    Concepteur d'applications web
    Inscrit en
    Avril 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Concepteur d'applications web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2003
    Messages : 102
    Par défaut
    Bon et bien ma réponse précédente était foireuse car lorsque l'on créé le controller, et bien il cré automatiquement le chemin vers la vue index =>

    zf create controller AdminList

    va créer le script de vue /application/views/scripts/AdminList/index.phtml

    de même pour la création d'une action, il va aussi créer la vue correspondante selon le même schéma.

    AAARGH, je vais retourner sur Copix ou symfony, ça m'ira bien ;-)
    Du coup là je suis déçu par la génération automatique de code. Déjà que les models et les forms ne sont pas fais (va falloir faire son propre provider), mais là y a un truc qui m'échape.

    Je ferme ce post et j'en ouvre un autre dédié à zf.bat

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2014, 15h19
  2. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  3. Réponses: 1
    Dernier message: 27/04/2012, 16h41
  4. [Visual Web] Utilisation des views plutôt que des tables
    Par eponette dans le forum NetBeans
    Réponses: 1
    Dernier message: 16/03/2007, 20h41
  5. [Plug-in]"Link with editor" view action dans une de mes vues...
    Par tophebboy dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 19/05/2006, 14h49

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