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 :

Initialisation et bootstrap


Sujet :

MVC PHP

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut Initialisation et bootstrap
    Bonsoir tous le monde,
    J'ai modifié ma structure pour avoir quelque chose de plus clair afin d'apprendre à utiliser le zend framework.
    cependant après avoir changer la configuration de la hiérarchie, j'ai modifier le boostrap et stupeur plus rien ne fonctionne ????
    J'ai beau cherché je ne trouve pas pk même si j'ai un doute sur l'initialisation des controllers....
    exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /Applications/MAMP/htdocs/library/Zend/Controller/Dispatcher/Standard.php:249 Stack trace: #0 /Applications/MAMP/htdocs/library/Zend/Controller/Front.php(914): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /Applications/MAMP/htdocs/zend-encoder/application/bootstrap.php(60): Zend_Controller_Front->dispatch() #2 /Applications/MAMP/htdocs/zend-encoder/public/index.php(8): require('/Applications/M...') #3 {main}
    Mon fichier bootstrap :

    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
    44
    45
    46
    47
    48
    49
    $rootPath = dirname(dirname(__FILE__));
    $appPath  = $rootPath . DIRECTORY_SEPARATOR . 'application';
    $confPath = $appPath  . DIRECTORY_SEPARATOR . 'config';
    // configuration de l'include_path PHP pour l'autoload
    set_include_path(get_include_path() . 
    PATH_SEPARATOR . $appPath . 
    PATH_SEPARATOR . $rootPath . DIRECTORY_SEPARATOR . 'lib' . 
    PATH_SEPARATOR . $appPath  . DIRECTORY_SEPARATOR . 'models');
    //require_once 'Initializer.php';
    require_once "Zend/Loader.php";
    require_once('Zend/Config/Ini.php');
     
    // Set up autoload.
    Zend_Loader::registerAutoload(); 
     
    // définition de constantes pour l'application
    define('APP_MODE', 'dev');
    define('CACHE_LIFETIME', 3600);
     
    // Prepare the front controller. 
    $frontController = Zend_Controller_Front::getInstance(); 
    // ********************* CONFIG *****************************
     
    // Récupération des objets de configuration
    $configMain    = new Zend_Config_Ini($confPath . DIRECTORY_SEPARATOR . 'zend_config_ini.ini', APP_MODE);
    // Change to 'production' parameter under production environemtn
    $frontController->registerPlugin(new Initializer('dev'));    
     
    // Dispatch the request using the front controller. 
    // ************************ MVC ****************************************
     
    // Configuration du contrôleur frontal
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->setControllerDirectory($appPath . '/controllers');
    $frontController->throwExceptions(false); // par défaut
     
    // propagation de paramètres dans le système MVC
    //$frontController->setParam('debug', $configMain->debug);
    //$frontController->setParam('locale', $locale);
    $frontController->setParam('config', $configMain);
    // **************************** LAYOUTS ***********************************
     
    Zend_Layout::startMvc(array('layoutPath' => $appPath . '/views/layouts'));
    // ******************************** DISPATCH ******************************
    try {
        $frontController->dispatch();
    } catch (Zend_Exception $e) {
        echo ($e);
    }
    La hierarchie est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /lib
    /application
                   /config
                   /models
                   /controllers
                   /views
                                 /filters
                                 /scripts
                                 /layouts
                                 /helpers
    /public
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Peux-tu nous donner la liste des fichiers présent dans ton répertoire controllers, s'il-te-plaît ?
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Pour l'instant j'ai ErrorController, IndexController, TestController
    Aurai je oublier d'instancier le mode MVC ?
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Pour l'instant j'ai ErrorController, IndexController, TestController
    Aurai je oublier d'instancier le mode MVC ?
    Le mode MVC est en place. Le message d'erreur et la trace le confirme. Mais j'ai plutôt l'impression d'une étourderie. Tu n'aurais pas écrit le nom de ta classe de façon erronée ? (Oubli d'un r dans errorController ou quelquechose comme cela...)

    Typiquement cette erreur survient quand il ne trouve pas le contrôleur adéquat. Et en l'occurence, il ne trouve pas le fichier (attention au nom du fichier et à la casse sous linux) Quand il trouve le fichier mais pas la bonne classe, le message est différent.(Invalid controller class). L'erreur vient donc du fichier.

    En conclusion, soit tu ne pointes pas vers le bon répertoire (Au vu de ton bootstrap, je dirais que tout va bien), soit ton nom de fichier du contrôleur error est mal orthographié.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Ce ne serai pas les vue qu'il ne trouve pas ?
    En faites dans View j'ai un dossier script contenant error, index, test et je pense que cela viendrai de la !!
    Mais je ne sais pas comment l'initialiser car dans le message d'erreur on vois distinctement qu'il ne trouve pas error ???
    J'ai vérifier les controllers et ils sont correctement écris.
    Pour info je suis sous Mac osx

    Voici mon controllers d'erreurs :
    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
    require_once 'Zend/Controller/Action.php';
     
    class ErrorController extends Zend_Controller_Action
    {
     
        /**
         * This action handles  
         *    - Application errors
         *    - Errors in the controller chain arising from missing 
         *      controller classes and/or action methods
         */
        public function errorAction()
        {
            $errors = $this->_getParam('error_handler');
            switch ($errors->type) {
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                    // 404 error -- controller or action not found                
                    $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
                    $this->view->title = 'HTTP/1.1 404 Not Found';
                    break;
                default:
                    // application error; display error page, but don't change                
                    // status code
                    $this->view->title = 'Application Error';
                    break;
            }
     
            $this->view->message = $errors->exception;
        }
    }
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  6. #6
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Non c'est bien le contrôleur qu'il ne trouve pas.

    Si c'était la vue on aurait une erreur de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uncaught exception 'Zend_View_Exception' with message 'script 'vue/matrice.phtml' not found in path (/home/alexandre/)
    On va déjà éliminer cette piste. Peux-tu ajouter temporairemen cette ligne de code avant l'appel au frontController ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($appPath . '/controllers');die();
    Ensuite liste le contenu de ce répertoire avec un ls -al depuis la console et colle nous le résultat.

    PS : Mac OS X fonctionnant sous un noyau linux, ls fichiers doivent être sensibles à la casse, attention aux minuscules et majuscules de ton nom de fichier.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  7. #7
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    LE ls -al dans le dossier controllers me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    drwxrwxrwx  5 aureliengerits  admin   170 11 jan 00:45 .
    drwxrwxrwx  8 aureliengerits  admin   272 11 jan 00:45 ..
    -rwxrwxrwx  1 aureliengerits  admin  1219  4 jan 22:19 ErrorController.php
    -rwxrwxrwx  1 aureliengerits  admin   366 30 déc 09:34 IndexController.php
    -rwxrwxrwx  1 aureliengerits  admin   479  4 jan 22:19 TestController.php
    Le var dump retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(62) "/Applications/MAMP/htdocs/zend-encoder/application/controllers"
    La je séche lol
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  8. #8
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Alors attention, ce que je voulais que tu me donnes, c'est le retour de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -al /Applications/MAMP/htdocs/zend-encoder/application/controllers
    Ensuite, quelquechose m'étonne ! Pourquoi x sur les fichiers php ?

    Normalement cela devrait être quelquechose du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rw-r--r--  1 aureliengerits  admin  1219  4 jan 22:19 ErrorController.php
    Bon on peut laisser des droits d'écriture en plus, on est pas à une étape de sécurité pour le moment, essaie d'avoir cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rw-rw-rw-  1 aureliengerits  admin  1219  4 jan 22:19 ErrorController.php
    Pour ce faire, dans le répertoire, tu exécutes :
    Mais, bref, à part cela, je ne vois vraiment pas et commence à sécher aussi !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  9. #9
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Voila le retour de la console :
    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
    imac-de-aurelien-gerits:~ aureliengerits$ ls -al /Applications/MAMP/htdocs/zend-encoder/application/controllers
    total 24
    drwxrwxrwx  5 aureliengerits  admin   170 11 jan 00:45 .
    drwxrwxrwx  8 aureliengerits  admin   272 11 jan 00:45 ..
    -rwxrwxrwx  1 aureliengerits  admin  1219  4 jan 22:19 ErrorController.php
    -rwxrwxrwx  1 aureliengerits  admin   366 30 déc 09:34 IndexController.php
    -rwxrwxrwx  1 aureliengerits  admin   479  4 jan 22:19 TestController.php
    imac-de-aurelien-gerits:~ aureliengerits$ cd /Applications/MAMP/htdocs/zend-encoder/application/controllers
    imac-de-aurelien-gerits:controllers aureliengerits$ chmod a-x *
    imac-de-aurelien-gerits:controllers aureliengerits$ ls -al /Applications/MAMP/htdocs/zend-encoder/application/controllers
    total 24
    drwxrwxrwx  5 aureliengerits  admin   170 11 jan 00:45 .
    drwxrwxrwx  8 aureliengerits  admin   272 11 jan 00:45 ..
    -rw-rw-rw-  1 aureliengerits  admin  1219  4 jan 22:19 ErrorController.php
    -rw-rw-rw-  1 aureliengerits  admin   366 30 déc 09:34 IndexController.php
    -rw-rw-rw-  1 aureliengerits  admin   479  4 jan 22:19 TestController.php
    imac-de-aurelien-gerits:controllers aureliengerits$ exit
    logout
     
    [Opération terminée]
    Bref je ne sais plus ou chercher l'erreur est :
    exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /Applications/MAMP/htdocs/library/Zend/Controller/Dispatcher/Standard.php:249 Stack trace: #0 /Applications/MAMP/htdocs/library/Zend/Controller/Front.php(914): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /Applications/MAMP/htdocs/zend-encoder/application/bootstrap.php(61): Zend_Controller_Front->dispatch() #2 /Applications/MAMP/htdocs/zend-encoder/public/index.php(8): require('/Applications/M...') #3 {main}
    Voici la version légèrement modifier du boostrap :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    /**
     * My new Zend Framework project
     * 
     * @author  
     * @version 
     */
    //set_include_path('.' . PATH_SEPARATOR . '../lib' . PATH_SEPARATOR . '../application/default/models/' . PATH_SEPARATOR . get_include_path());
    set_exception_handler('bootstrapError');
     
    function bootstrapError()
    {
        exit("Une erreur grave est survenue");
    }
    $rootPath = dirname(dirname(__FILE__));
    $appPath  = $rootPath . DIRECTORY_SEPARATOR . 'application';
    $confPath = $appPath  . DIRECTORY_SEPARATOR . 'config';
    // configuration de l'include_path PHP pour l'autoload
    set_include_path(get_include_path() . 
    PATH_SEPARATOR . $appPath . 
    PATH_SEPARATOR . $rootPath . DIRECTORY_SEPARATOR . 'lib' . 
    PATH_SEPARATOR . $appPath  . DIRECTORY_SEPARATOR . 'models');
    //require_once 'Initializer.php';
    require_once "Zend/Loader.php";
    require_once('Zend/Config/Ini.php');
     
    // Set up autoload.
    Zend_Loader::registerAutoload(); 
     
    // définition de constantes pour l'application
    define('APP_MODE', 'dev');
    define('CACHE_LIFETIME', 3600);
     
    // Prepare the front controller. 
    $frontController = Zend_Controller_Front::getInstance(); 
    // ********************* CONFIG *****************************
     
    // Récupération des objets de configuration
    $configMain    = new Zend_Config_Ini($confPath . DIRECTORY_SEPARATOR . 'zend_config_ini.ini', APP_MODE);
    // Change to 'production' parameter under production environemtn
    $frontController->registerPlugin(new Initializer('dev'));    
     
    // Dispatch the request using the front controller. 
    // ************************ MVC ****************************************
     
    // Configuration du contrôleur frontal
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->setControllerDirectory($appPath.'/controllers');
    $frontController->throwExceptions(false); // par défaut
    //var_dump($appPath . '/controllers');die();
    // propagation de paramètres dans le système MVC
    $frontController->setParam('debug', $configMain->debug);
    //$frontController->setParam('locale', $locale);
    $frontController->setParam('config', $configMain);
    Zend_Controller_Action_HelperBroker::addPath($appPath.'/views/helpers', 'Zend_Controller_Action_Helper');
    // **************************** LAYOUTS ***********************************
     
    Zend_Layout::startMvc(array('layoutPath' => $appPath . '/views/layouts','layout' => 'main'));
    // ******************************** DISPATCH ******************************
    try {
        $frontController->dispatch();
    } catch (Zend_Exception $e) {
        echo ($e);
    }
    ?>
    Et enfin le fichier de configuration :
    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
    ;;
    ;; Configuration générale
    ;;
    [app]
    database.adapter = pdo_mysql
    [prod : app]
    database.params.host = localhost 
    database.params.user = root
    database.params.pass = root
    database.params.name = zendencoder
    debug                = 0
    [dev : app]
    database.params.host = localhost 
    database.params.user = root
    database.params.pass = root
    database.params.name = zendencoder
    debug                = 1
    Si c'est un probléme avec le chargement des controllers je me demande bien pourquoi ...
    Les class sont bien nommé, le dossier aussi et en plus c'est indiqué dans le boostrap
    Peut être un souci sur l'ordre des instance dans le bootstrap ?? j'appelle peut être quelque chose sencé être avant ..
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  10. #10
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Normalement, ce n'est pas trop à faire, mais comme je suis un peu perdu moi aussi ...

    Est-ce que tu peux modifier dans le fichier Zend/Controller/Dispatcher/Standard.php la méthode isDispatchable(Zend_Controller_Request_Abstract $request), en ajoutant ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $readable = Zend_Loader::isReadable($test);
    echo '<pre>';
    var_dump($test);
    var_dump($readable);
    echo '</pre>';
    die();
    avant la dernière ligne de la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return Zend_Loader::isReadable($test);

  11. #11
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Cela me rassure, je ne suis pas le seul à avoir épuisé mes pistes !
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  12. #12
    Modérateur

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

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Par acquis de conscience peux-tu modifier le bootstrap?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $controller->setControllerDirectory('./application/controllers');

  13. #13
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Voila j'ai modifier :
    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
    public function isDispatchable(Zend_Controller_Request_Abstract $request)
        {
            $className = $this->getControllerClass($request);
            if (!$className) {
                return false;
            }
     
            if (class_exists($className, false)) {
                return true;
            }
     
            $fileSpec    = $this->classToFilename($className);
            $dispatchDir = $this->getDispatchDirectory();
            $test        = $dispatchDir . DIRECTORY_SEPARATOR . $fileSpec;
            $readable = Zend_Loader::isReadable($test);
    echo '<pre>';
    var_dump($test);
    var_dump($readable);
    echo '</pre>';
    die();
            return Zend_Loader::isReadable($test);
        }
    Avec vos deux réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $frontController->setControllerDirectory('./application/controllers');
    Mais toujours le même message d'erreur c'est vraiment bizarre j'ai jamais vu sa lol.
    On dirai que la méthode pour intialiser le controller est mal indiquer dans mon bootstrap .
    Je peut donner l'archive ? car la je sais plus
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  14. #14
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Si tu as le même message d'erreur, c'est que l'erreur est en amont !

    Et si tu remplaces dans la même méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            if (!$className) {
                return false;
            }
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            var_dump($className);
            if (!$className) {
                var_dump($request);
                die();
                return false;
            }
    Ok pour l'archive, si tu fait vite je pourrais peut-être me pencher dessus ce soir

  15. #15
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Ok Eusebe, voici le lien pour le télécharger
    http://www.clashdesign.net/zend-encoder.zip
    Tout y est vous constaterez que je n'ai pu procéder à aucun codage c'est une archive de test afin de bien comprendre comment utiliser le zendframework
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  16. #16
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Alors, ton premier bug vient de ton plugin Initializer qui redéfinit l'emplacement des controleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public function initControllers()
        {
        	$this->_front->addControllerDirectory($this->_root . '/application/default/controllers', 'default');
        }
    Bon courage pour la suite

  17. #17
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Eusebe le fichier initializer ne sert à rien je ne l'ai pas inclus, c'etais un fichier générer par zend studio pour eclipse.
    Donc le probléme ne viens pas de la
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  18. #18
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Eusebe le fichier initializer ne sert à rien je ne l'ai pas inclus, c'etais un fichier générer par zend studio pour eclipse.
    Donc le probléme ne viens pas de la
    Si si !
    Dans ton bootstrap tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $frontController->registerPlugin(new Initializer('dev'));
    Désactives cette ligne si tu n'est pas à l'origine de cette classe, et tout ira mieux !

  19. #19
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Désolé gratxxx, mais Eusebe a raison !

    Regarde tu appelles l'initaliseur dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // ********************* CONFIG *****************************
     
    // Récupération des objets de configuration
    $configMain    = new Zend_Config_Ini($confPath . DIRECTORY_SEPARATOR . 'zend_config_ini.ini', APP_MODE);
    // Change to 'production' parameter under production environemtn
    $frontController->registerPlugin(new Initializer('dev'));
    L'initialiseur est un excellent plugin qui permet de tout initialiser. Tu "registres" (on va dire branches) ce plugin.

    Par conséquent tout est modifié. Je t'invites à le parcourir, il est assez clair. Pour que ton code soit propre, reporte toute ta configuration dans ce plugin.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  20. #20
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Oui c'est vrai que j'aurai du utiliser ce plugin mais avant de le faire je tenais absolument à comprendre le fonctionnement de la structure.
    Mais il reste tout de même des erreurs avec le bootstrap qui cherche le fichier layout.phtml qui biensur n'existe pas mais j'utilise un fichier nommé main pour tester.
    exception 'Zend_View_Exception' with message 'script 'layout.phtml' not found in path (C:\wamp\www\zend-encoder\application\views\layouts\;C:\wamp\www\zend-encoder\application\views\layouts\;C:\wamp\www\zend-encoder\application\views\scripts\)' in C:\wamp\www\zend-encoder\lib\Zend\View\Abstract.php:875 Stack trace: #0 C:\wamp\www\zend-encoder\lib\Zend\View\Abstract.php(783): Zend_View_Abstract->_script('layout.phtml') #1 C:\wamp\www\zend-encoder\lib\Zend\Layout.php(787): Zend_View_Abstract->render('layout.phtml') #2 C:\wamp\www\zend-encoder\lib\Zend\Layout\Controller\Plugin\Layout.php(142): Zend_Layout->render() #3 C:\wamp\www\zend-encoder\lib\Zend\Controller\Plugin\Broker.php(331): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http)) #4 C:\wamp\www\zend-encoder\lib\Zend\Controller\Front.php(945): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http)) #5 C:\wamp\www\zend-encoder\application\bootstrap.php(59): Zend_Controller_Front->dispatch() #6 C:\wamp\www\zend-encoder\public\index.php(8): require('C:\wamp\www\zen...') #7 {main}
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

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

Discussions similaires

  1. [ZF 1.9] Initialiser la classe Bootstrap
    Par mister_sood dans le forum Autres composants
    Réponses: 2
    Dernier message: 11/09/2009, 16h46
  2. [ZF 1.8] Initialisation modulaire et bootstraping
    Par s.n.a.f.u dans le forum MVC
    Réponses: 12
    Dernier message: 27/07/2009, 12h45
  3. [servlet] initialisation d'objets
    Par tiPouick dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/08/2003, 12h12
  4. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  5. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37

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