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 :

Problème avec MVC


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut Problème avec MVC
    Bonjour,

    Sa fais 5 jours que j'essaye de faire fonctionner l'architecture MVC avec le framework de Zend...

    Voici la structure de mon site (conseillé par Zend):

    /app
    /models
    /views
    /controllers
    /document_root
    /images
    /styles
    .htaccess
    index.php
    /lib
    /Zend
    Zend.php

    ensuite dans mon index.php je fais un set_include_path pour que sa pointe sur le dossier lib.

    Voici mes deux fichiers index.php et 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
    <?php
    // IndexController.php
    Zend::loadClass('Zend_Controller_Action');
     
    class IndexController extends Zend_Controller_Action
    {
        public function indexAction()
        {
            echo 'IndexController::indexAction()';
        }
     
    	public function noRouteAction()
        {
            echo 'No route Action';
        }
    }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // Index.php
    set_include_path(".;E:\web\htdocs\\test\mvc\lib\\");
     
    require_once 'Zend/Controller/Front.php';
     
    $controller = Zend_Controller_Front::getInstance();
    $controller->setControllerDirectory('../app/controllers');
    $controller->dispatch();
    ?>
    Voilà alors mes deux pages sont extêment basic, l'url rewriting fonctionne. Mais ce qui fonctionne pas c'est l'appel de IndexController.php si je tape http://localhost/MonSiteMVC/controller/action il devrait entrer dans le no route action pour me dire que le controlleur n'existe pas! Mais sa ne fonctionne pas.

    Quelqu'un sait pourquoi??

    Merci d'avance.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  2. #2
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2002
    Messages : 23
    Par défaut
    Bonjour,

    Quand tu dis que ca ne fonctionne pas, que se passe-t-il exactement ? Message d'erreur ? rien qui ne s'affiche ?

    Peux tu nous mettre les lignes de configuration de l'url rewriting de ton httpd.conf, stp.

    [edit]
    L'action pour le quand il n'y a pas de routage, se nomme noRoute et non pas noRouteAction
    [/edit]

  3. #3
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Justement absolument rien ne s'affiche! Mais si je fais un echo "Hello World" sur ma page sa s'affiche... donc il ne doit pas y avoir d'erreur... J'ai essayé de mettre juste noRoute() mais il n'y a toujours rien qui s'affiche... alors dans le httpd.conf j'ai simplement enlevé le # devant le LoadModule rewrite_module modules/mod_rewrite.so puis j'ai ajouté un fichier .htaccess dans le document_root qui contient les lignes suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  4. #4
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2002
    Messages : 23
    Par défaut
    J'ai fait quelques essais sur la configuration de l'url rewriting (j'ai teste en mettant les lignes a la fin du httpd.conf et non pas dans un .htacces).
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1
    Ca ne marche pas

    Par contre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteLog "D:\html_5\log\rewrite.log"
    RewriteRule !\.(js|ico|gif|jpg|png|css|php)$ /index.php
    Ca passe, j'ai bien "No route Action" qui s'affiche.

    Pour le contenu des autres fichiers, tout est exactement pareil que ce que tu as donné.

    Au passage, J'ai dis des betises, c'est bien "noRouteAction" et non pas "noRoute"

  5. #5
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Quand je change mon fichier .htacces et que je renome ma fonction en "noRouteAction()" j'ai l'erreur suivante:
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Objet non trouvé!
    
    L'URL requise n'a pu etre trouvée sur ce serveur. Si vous avez tapé l'URL à la main, veuillez vérifier l'orthographe et réessayer.
    
    Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
    Error 404
    localhost
    12/22/06 09:04:36
    Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.2.0
    et si j'ajoute à la fin de mon fichier httpd.conf alors le navigateur m'indique qu'il y a une erreur de redirection.

    Franchement je ne sais vraiment plus quoi faire... J'ai déjà essayer 5 tuto différents et chaque fois je bloque à la même place!
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  6. #6
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2002
    Messages : 23
    Par défaut
    Peux tu essayer avec les trois lignes qui fonctionnent chez moi stp ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    bonjour à tous
    voici quelques jours que je suis sur l'instalation de Zend et toujours rien !!
    en effet j'ai le même soucie que Yoteco
    rien ne s'affiche sur ma page index

    afin de suivre un autre chemin j'ai recommencé une installe sur le modele d'écris par Eric et zf-tutorial,

    mais _____

    "Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[28000] [1045] Access denied for user 'rob'@'localhost' (using password: YES)' in E:\Appli\wamp\www\myhope\Zend\Db\Adapter\Pdo\Abstract.php:111 Stack trace: #0 E:\Appli\wamp\www\myhope\Zend\Db\Adapter\Abstract.php(146): Zend_Db_Adapter_Pdo_Abstract->_connect() #1 E:\Appli\wamp\www\myhope\Zend\Db\Adapter\Abstract.php(309): Zend_Db_Adapter_Abstract->query('DESCRIBE album', NULL) #2 E:\Appli\wamp\www\myhope\Zend\Db\Adapter\Pdo\Mysql.php(86): Zend_Db_Adapter_Abstract->fetchAll('DESCRIBE album') #3 E:\Appli\wamp\www\myhope\Zend\Db\Table.php(181): Zend_Db_Adapter_Pdo_Mysql->describeTable('album') #4 E:\Appli\wamp\www\myhope\Zend\Db\Table.php(123): Zend_Db_Table->_setup() #5 E:\Appli\wamp\www\myhope\application\controllers\IndexController.php(15): Zend_Db_Table->__construct() #6 E:\Appli\wamp\www\myhope\Zend\Controller\Dispatcher.php(436): IndexController->indexAction() #7 E:\Appli\wamp\www\myhope\Zend\Controller\Front.php(725): Zend_Controller_Dis in E:\Appli\wamp\www\myhope\Zend\Db\Adapter\Pdo\Abstract.php on line 111"

    Pourtant :
    rob localhost Oui ALL PRIVILEGES Oui

    est ce dans configuration de mon serveur ?


    sinon pour l'installation classique de zend, où place ton la class proposé par doctorrock, et comment et d'où l'appel ton ?

    désolé de mon ignorance !!

    merci

  8. #8
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    pour etre sure que ce n'es pas ta config, tu peut verifier

    1-que l'extention pdo_mysql est charger
    2-que tu utilise bien la version 0.6 du framework et que t'a bien php 5.1.x
    3-l'url rewriting dans apache

    et normalement tout devrai allez comme sur des roulette ^^

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    pdo_mysql ok!
    version 0.6 du framework ok, pour php comment je peux verifier sous wamp ?
    pour apache j'ai activé le module rewrite à present url_rewrite ou est ce ?
    dans httpd.conf
    LoadModule rewrite_module modules/mod_rewrite.so ?
    cela c'est fait !

    merci

  10. #10
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    wamp c'est php 5.2 donc sa doit etre le programme

  11. #11
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Par défaut
    voici a quoi resemble mon index.php et sa marche tres bien

    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
     <?php
     
    error_reporting(E_ALL|E_STRICT);
    date_default_timezone_set('Europe/London');
     
    set_include_path('.'.PATH_SEPARATOR.'./library'.PATH_SEPARATOR.'./appli/moduls'.PATH_SEPARATOR.get_include_path());
     
    include_once('Zend.php');
     
    // class loading
    Zend::loadClass('Zend_Controller_Front');
    Zend::loadClass('Zend_Controller_RewriteRouter');
    Zend::loadClass('Zend_View');
    Zend::loadClass('Zend_Db');
    Zend::loadClass('Zend_Db_Table');
    Zend::loadClass('Zend_Filter_Input');
    Zend::loadClass('Zend_Config_Ini');
     
    Zend::register('post',new Zend_Filter_Input($_POST));
     
    //Recuperation des infos de connexion a la base du fichier ini
     
    $db = new Zend_Config_Ini('./appli/config.ini','general');
     
    $base_url = substr($_SERVER['PHP_SELF'],0,strpos($_SERVER['PHP_SELF'],'/index.php'));
     
    //traitement des vues
    $view = new Zend_View();
    $view->setScriptPath('./appli/views');
    Zend::register('view',$view);
     
    // traitement des controlles
    $control = Zend_Controller_Front::getInstance();
    $control->setBaseUrl($base_url);
    $control->setControllerDirectory('./appli/controllers');
    $control->dispatch();

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    cool !!
    super cool cela fonctionne
    un grand merci :-)

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    je continue ma decouverte !!
    à partir de zf-tutorial

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Désolée sinleon pas de réponse pour le pdf

    moi je venais encore avec mes questions
    en effet ma page index s'affiche mais les liens edit et delete me donne NOT Found
    je pense toujours à ma configuration et mes fichiers .htaccess
    que dois je modifier dans httpd.conf avec AllowOverride
    peut être est ce autre chose ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    j'ai compris mon erreur
    j'avais renommer le repertoire zf-tutorial du coup il trouver plus ces oeufs
    mais ou peut on lui indiquer un autre nom de repertoire !!?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/01/2009, 20h37
  2. Réponses: 6
    Dernier message: 16/09/2008, 20h35
  3. [Spring MVC] Problèmes avec SimpleFormController"s"
    Par SuperGandalf dans le forum Spring Web
    Réponses: 2
    Dernier message: 13/06/2007, 10h38
  4. [0.8] Problème avec la recherche MVC (Tuto d'Akrabat)
    Par developpeur_mehdi dans le forum Zend_Db
    Réponses: 4
    Dernier message: 09/03/2007, 18h00
  5. Réponses: 1
    Dernier message: 04/02/2007, 23h40

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