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 :

Appli modulaire - Problème de redirection/d'URL [ZF 1.10]


Sujet :

MVC PHP

  1. #1
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut Appli modulaire - Problème de redirection/d'URL
    Bonjour tout le monde.

    Je suis actuellement train de développer une application ZF en modulaire. Pour le moment, j'ai 3 modules : Default, Forum, BackOffice.
    Mon problème, c'est qu'hormis le module Default et son IndexController, je n'arrive pas à accéder à autre chose de l'appli'.

    Par exemple, j'ai developpé un autre Controller, dans lequel il y a une action creercompteAction(), qui appelle un formulaire etc.
    Et dans l'action index de mon IndexController, j'ai mis une redirection pour arriver directement au formulaire d'inscription. Voici les deux codes essayés :
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $this->_redirect($this->view->_url(array(
        'module'        => 'default',
        'controller'    => 'dresseur',
        'action'        => 'creercompte'
    ), null, true));
    Voici l'erreur retourné dans ce cas :
    An error occurred
    Application error
    Exception information:

    Message: Plugin by name '_url' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:/home/vhosts/demonsworld.xp3.biz/Kaode/application/modules/default/views/helpers/
    Stack trace:
    #0 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/View/Abstract.php(1174): Zend_Loader_PluginLoader->load('_url')
    #1 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/View/Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', '_url')
    #2 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/View/Abstract.php(336): Zend_View_Abstract->getHelper('_url')
    #3 [internal function]: Zend_View_Abstract->__call('_url', Array)
    #4 /home/vhosts/demonsworld.xp3.biz/Kaode/application/modules/default/controllers/IndexController.php(14): Zend_View->_url(Array, NULL, true)
    #5 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/Controller/Action.php(513): IndexController->indexAction()
    #6 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('indexAction')
    #7 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #8 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
    #9 /home/vhosts/demonsworld.xp3.biz/Kaode/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
    #10 /home/vhosts/demonsworld.xp3.biz/Kaode/public/index.php(23): Zend_Application->run()
    #11 {main}
    Request Parameters:
    array (
    'controller' => 'index',
    'action' => 'index',
    'module' => 'default',
    )
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_redirect('/default/dresseur/creercompte');
    Ce coup-ci, ça me dit que la page n'existe pas...

    Est-ce qu'il y aurait quelque chose que j'ai mal tapé dans ma redirection ? Ou il manque une configuration dans l'appli' ? Parce que même si je tape à la main, ça me dit que la page n'existe pas.

    NB : quand je lance mon appli', j'arrive sur le l'URL du type : www.monsiteweb/public/
    Je ne sais pas si ça change quelque chose, mais je précise que je suis dans le répertoire public/ pour afficher mon site ^^

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    As-tu configurer les modules dans ton application.ini?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ;initialisation des modules
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.modules[] = ""

  3. #3
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Salut.

    Oui, j'ai bien ajouté ce qu'il faut dans mon application.ini.

    J'ai même rajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    resources.modules.backoffice = APLLICATION_PATH "/modules/backoffice"
    resources.modules.forum = APLLICATION_PATH "/modules/forum"
    Mais ça n'a rien changé à mon problème...

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 144
    Par défaut
    Ton problème est que ton IndexController n'arrive pas à trouver l'aide de vue "Url".
    C'est indiqué dans les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Message: Plugin by name '_url' was not found in the registry
    .

    A la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $this->_redirect($this->view->_url(array(
        'module'        => 'default',
        'controller'    => 'dresseur',
        'action'        => 'creercompte'
    ), null, true));
    J'essayerais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $this->_redirect($this->view->url(array(
        'module'        => 'default',
        'controller'    => 'dresseur',
        'action'        => 'creercompte'
    ), null, true));

  5. #5
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Bonjour.

    J'ai effectué le changement, et maintenant j'ai l'erreur me disant que la page n'a pas été trouvé (Page not found)...

    J'aurais un problème de configuration ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    et celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->_redirect('default/dresseur/creercompte');

  7. #7
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Comme dit dans mon premier post : "Page not found".

    Donc mes deux méthodes de redirection me retournent le même résultat...

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Et tu as bien la page creercompte.phtml ?

  9. #9
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Ouaip. Elle se situe dans views/scripts/dresseur/.

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Dans modules/default/views/scripts/dresseur/ ? pour être sur ?

  11. #11
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Tout à fait.

  12. #12
    Membre très actif
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Par défaut
    salut !
    voila comment moi je procède pour l'utilisation d'une application web modulaire avec ZF.
    dans mon fichier application.ini , je mets ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.modules[]	 = ""
    ensuite dans mon bootstrap :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected function _initAutoload()
    	{
    		$moduleLoader = new Zend_Application_Module_Autoloader(array(
    			'namespace' => '',
    			'basePath'  => APPLICATION_PATH . '/modules/default'
    		));
     
    		return $moduleLoader;
    	}
    et ça marche pour n'importe quel module que je crée.

  13. #13
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Bondour !

    Petite question FERDIKAM.

    Le code que tu m'as donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected function _initAutoload() {
    	$moduleLoader = new Zend_Application_Module_Autoloader(array(
    		'namespace' => '',
    		'basePath'  => APPLICATION_PATH . '/modules/default'
    	));
     
    	return $moduleLoader;
    }
    Tu le mets dans le Bootstrap principale de l'appli' ou dans chaque NomDuModule_Bootstrap ?

  14. #14
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    EDIT : désolé pour le double post, fausse manip' (cliqué sur "Citer" au lieu de "Editer").

    Bondour !

    Petite question FERDIKAM.

    Le code que tu m'as donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected function _initAutoload() {
    	$moduleLoader = new Zend_Application_Module_Autoloader(array(
    		'namespace' => '',
    		'basePath'  => APPLICATION_PATH . '/modules/default'
    	));
     
    	return $moduleLoader;
    }
    Tu le mets dans le Bootstrap principal de l'appli' ou dans chaque NomDuModule_Bootstrap ?

    Voici le code de mon Bootstrap principal :
    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
    39
    40
    41
    42
    43
    <?php
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
        protected function _initDefaultNamespace() {
            $moduleLoaders = array();
     
            // Default.
            $default = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Default_',
                'basePath'  => APPLICATION_PATH .'/modules/default',
            ));
            $default->addResourceType('lib', 'library/', 'Lib');
     
            // Forum.
            $forum = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Forum_',
                'basePath'  => APPLICATION_PATH . '/modules/forum',
            ));
            $forum->addResourceType('lib', '/library', 'Lib');
     
            // BackOffice.
            $backoffice = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'BackOffice_',
                'basePath'  => APPLICATION_PATH . '/modules/backoffice',
            ));
            $backoffice->addResourceType('lib', '/library', 'Lib');
     
            // Ajout des namespaces.
            $moduleLoaders['Default'] = $default;
            $moduleLoaders['Forum'] = $forum;
            $moduleLoaders['BackOffice'] = $backoffice;
        }
     
        protected function _initViewHelpers() {
            $this->bootstrap('layout');
            $layout = $this->getResource('layout');
            $view   = $layout->getView();
            $view->doctype('XHTML1_STRICT');
            $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
            $view->headTitle()->setSeparator(' - ');
            $view->headTitle('Kaode');
        }
    }

  15. #15
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Perso, je ne met pas le chemin des modules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
        protected function _initAutoload() {
            $autoloader = new Zend_Application_Module_Autoloader(array(
                        'namespace' => '',
                        'basePath' => APPLICATION_PATH
                    ));
            return $autoloader;
        }
    Mais oui, il faut le mettre dans le bootstrap principal.
    de plus je pense que tu oublies de retourner ton objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            // Ajout des namespaces.
            $moduleLoaders['Default'] = $default;
            $moduleLoaders['Forum'] = $forum;
            $moduleLoaders['BackOffice'] = $backoffice;
    return $moduleLoaders;

  16. #16
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Alors, j'ai changé mon code, j'ai mis comme vous m'avez dit avec le _initAutoload() et viré l'initialisation des modules dans mon application.ini.
    Toujours même souci, ça me dit qu'il ne trouve pas la page.

    Je vous mets le code de mon 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
    <?php
     
    // Define path to application directory
    defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
     
    // Define application environment
    defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
     
    // Ensure library/ is on include_path
    set_include_path(implode(PATH_SEPARATOR, array(
        realpath(APPLICATION_PATH . '/../library'),
        get_include_path(),
    )));
     
    //require_once 'Zend/Loader/Autoloader.php';
    //$autoloader = Zend_Loader_Autoloader::getInstance();
    //$autoloader->setFallbackAutoloader(true);
     
    require_once 'Zend/Application.php';
     
    // Create application, bootstrap, and run
    $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
    $application->bootstrap()->run();
    Des fois qu'il y ait un souci dans ce dernier (je ne vois plus que ça...).

    Et voici également l'arborescence de mon projet :
    http://img8.imageshack.us/img8/5989/...scencezend.jpg

  17. #17
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par DarkSeiryu Voir le message
    t viré l'initialisation des modules dans mon application.ini.
    Comment ça ?

  18. #18
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Comment ça ?
    Je n'avait pas seulement ça dans mon application.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.modules[]	 = ""
    J'avais rajouté ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    resources.modules.default = APPLICATION_PATH "/modules/default"
    resources.modules.forum = APPLICATION_PATH "/modules/forum"
    resources.modules.backoffice = APPLICATION_PATH "/modules/backoffice"
    Mais j'ai fait comme vous et ai donc supprimé ces lignes

  19. #19
    Membre très actif
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Par défaut
    Regarde le tuto :
    http://julien-pauli.developpez.com/t...d-application/

    Dans le chapitre III , il est expliqué la mise en place d'une application modulaire.

  20. #20
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Ouais, je me suis servi de ce tuto' pour monter l'appli'. Mais pour une raison que j'ignore, ça ne fonctionnait pas. J'ai donc entrepris diverses modifications pour rectifier le tir, mais là je bloque vraiment :/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ZF 1.11] appli modulaire et problème d'accès actions
    Par BBFUNK01 dans le forum MVC
    Réponses: 6
    Dernier message: 01/04/2012, 22h03
  2. Réponses: 10
    Dernier message: 07/04/2010, 03h55
  3. [Débutant] Problème de lenteur et de redirection d'URL
    Par homeostasie dans le forum Apache
    Réponses: 2
    Dernier message: 05/03/2009, 18h45
  4. Réponses: 11
    Dernier message: 28/02/2009, 01h50
  5. problème de redirection dans l'url
    Par vmeyer dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 18/04/2008, 15h41

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