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 :

Question d'un débutant en ZF [ZF 1.7]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut Question d'un débutant en ZF
    Bonjour,

    Je me suis procuré le livre de J. Pauli et j'ai téléchargé les sources de l'application qui est proposée dans l'ouvrage.
    Le seul problème c'est que je n'arrive pas à la faire fonctionner.
    J'ai étudié l'ouvrage jusqu'à la moitié environ mais comme je n'arrive pas à tester l'appli (et à tout comprendre ), je suis coincé.
    J'ai bien compris comment fonctionne les bases du modèle MVC de ZF mais je crois que je ne place pas les sources au bon endroit.
    Je suis perdu et je m'énerve sur une broutille alors je viens demander un peu d'aide.
    Pour info, je suis sous Vista, j'utilise wampserver 2.0 qui est installé à cet endroit : "d:\wamp\" (j'ai configuré le serveur Apache pour que le documentRoot soit ce même répertoire) et j'ai installé le Zend Framework dans le répertoire "d:\wamp\bin\zend\library\" (j'ai également configuré l'include_path de php.ini).
    Le premier test du livre (l'affichage de l'heure) à fonctionné, ce qui montre que la configuration est bonne.
    Si une âme charitable pouvait m'éclairer pour que je puisse intégrer le concept jusqu'au bout, je serait le plus heureux des programmeurs débutants .
    Par exemple, un petit aperçu de l'arborescence nécessaire (à partir de la racine du disque si possible) au bon fonctionnement serait le bienvenu.

    Ce serait encore mieux, si l'auteur du livre pouvait m'aider mais je crois que je rêve , enfin comme on dit, l'espoir fait vivre.

    Merci beaucoup et @+

  2. #2
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Dans ton php.ini, assure toi que display_errors soit activé (php affiche les erreurs). Il faut que tu ais une ligne comme ceci, sans ";" devant:

    Ensuite, toujours dans php.ini, assure toi d'avoir ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting  =  E_ALL | E_STRICT
    Maintenant, poste nous les erreurs affichées par php quand tu essais ton appli de démo.

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

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

    Je ne suis pas l'auteur de ce livre, et je ne l'ai d'ailleurs pas encore lu (mais j'espère me rattraper ), mais je vais essayer de t'aider.

    Tout d'abord je suis très étonné de te voir faire pointer le documentRoot d'apache sur la répertoire d'installation de Wamp. C'est une très mauvaise idée il me semble, et je serais bien étonné que ce soit conseillé par le livre.

    Tu n'as pas non plus besoin de modifier l'include_path, ça peut être fait dans le bootstrap (initialisation du MVC)

    Je ne sais pas quelle architecture est utilisée dans le livre de J. Pauli (il existe plusieurs solutions pour faire fonctionner une application MVC avec le ZF), mais généralement la structure ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    site
      - application
          - controllers
          - models
          - views
      - library
          - Zend
      - public
    Le répertoire "site" peut être placé où tu veux.
    La bibliothèque Zend Framework doit être installée dans le dossier library (ou équivalent).

    Pour la configuration d'apache, il faut ajouter le répertoire .../site dans le httpd.conf, et faire pointer le documentRoot sur site/public. Si tu as plusieurs sites à gérer sur un même serveur, tu peux utiliser des alias ou des hôtes virtuels.

    Dans le dossier public, on trouve tous les fichiers accessibles de l'extérieur (à travers le serveur web). Dans une application mvc développée avec le ZF, on ne doit y trouver qu'un fichier index.php et les ressources directement accessibles par le navigateur (comme les images, feuilles de style, et fichiers JavaScript). Et pour rediriger toutes les requêtes effectuées vers le fichier index.php, il faut ajouter un fichier .htaccess qui réalise de l'url rewriting.

    Tu dois certainement avoir des exemples de fichiers .htaccess dans le livre. Pour que l'url_rewriting fonctionne, il faut activer le module rewrite_module d'apache (clic sur l'icone de Wamp, Apache modules, sélectionner 'rewrite_module').

    Voilà déjà quelques pistes de modification de ta config
    Si tu es toujours bloqué, donne nous plus de détails sur les erreurs rencontrées (page blanche, erreur 404, exception, etc...)

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    Tout d'abord je vous remercie pour votre réactivité fulgurante .
    En effet je me suis trompé dans ce que j'ai écrit. Le documentRoot est "d:\wamp\www", autant pour moi .
    J'ai mis les sources de l'exemple du livre dans ce répertoire.
    Voici l'arborescence de mon disque D :
    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
     
    D:
    |-...autres répertoires...
    |-wamp
          |-bin
          |    |-...autres répertoires...
          |    |-zend
          |         |-library
          |               |-Zend
          |
          |-...autres répertoires...
          |-www
               |-...autres projets...
               |-zfbook
                     |-application
                     |        |-config
                     |        |-controllers
                     |        |-languages
                     |        |-logs
                     |        |-models
                     |        |-tmp
                     |        |-views
                     |              |-filters
                     |              |-helpers
                     |              |-layouts
                     |              |-scripts
                     |                    |-...les différentes vues...
                     |
                     |-html
                     |     |-css
                     |     index.php
                     |
                     |-library
                     |     |-Zfbook
                     |
                     |-logs
                     |
                     |-tests
    Dans le fichier php.ini, il y a l'élément suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_path = ".;d:\wamp\bin\zend\library"
    Dans le fichier httpd.conf, il y a l'élément suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocumentRoot "d:/wamp/www"
    Ensuite, j'ai fais un petit test concluant avec le fichier test.php placé dans "d:\wamp\www" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
         //Affichage de la date courante
         require 'Zend/Date.php';
         echo new Zend_Date();
    Je rentre l'adresse "http://localhost/test.php" et j'ai la date qui s'affiche.
    Jusque là pas de problèmes.

    Tu n'as pas non plus besoin de modifier l'include_path, ça peut être fait dans le bootstrap
    En fait, j'ai suivi l'exemple du livre et il demande de modifier le fichier php.ini.

    Tu dois certainement avoir des exemples de fichiers .htaccess dans le livre.
    Et ben, il n'y a pas de références à un fichier .htaccess dans le livre et il n'y en a pas dans les sources. D'ailleurs, j'ai pas bien tout compris concernant ceci. Où faut-il le placer? Que faut-il écrire dedans pour une utilisation simple?

    Pour que l'url_rewriting fonctionne, il faut activer le module rewrite_module d'apache
    C'est déjà activé.

    Si tu as plusieurs sites à gérer sur un même serveur, tu peux utiliser des alias ou des hôtes virtuels.
    Si tu pouvais m'expliquer, je ne vois pas comment cela fonctionne.

    En finalité, pour avoir accès à la page d'accueil de l'application, je rentre l'adresse suivante :
    "http://localhost/zfbook/html/index.php"
    La page d'accueil s'affiche, se qui prouve que l'action par défaut du controller index fonctionne.
    Par contre quand je clique sur un lien dans cette page, ben j'ai une erreur 404 :
    "The requested URL /zfbook/html/reservation/list was not found on this server."

    Voilà, je suis bloqué ici.
    S'il le faut, je pourrais mettre des morceaux du bootstrap.

    Merci d'avance pour vos réactions.

    @+

  5. #5
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Tu peux trouver des exemples de fichier .htaccess et de paramétrage d'un hôte virtuel dans le tutoriel "Débuter avec Zend Framework 1.5 (approche MVC)" :
    http://g-rossolini.developpez.com/tu...e=organisation

    La création d'hôtes virtuels n'est pas nécessaire, mais c'est intéressant pour un site en production pour la sécurité (pas d'accès aux répertoires inférieurs) et pour la simplification de l'adresse.

    Pour le fichier .htaccess, il faut que tu le place dans D:\wamp\www\zfbook\html et il doit au moins contenir quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* index.php
    - la première ligne indique que la réécriture d'URL est activée
    - la deuxième ligne limite la réécriture aux adresses ne correspondant pas à un fichier réel (ce qui permet de laisser le navigateur accéder aux images, css, etc...)
    - la troisième ligne redirige toutes les adresses (correspondant à la condition de la deuxième ligne) vers le fichier index.php

    De cette façon, quand tu auras un lien de la forme "http:/localhost/zfbook/html/reservation/list", le serveur ne renverra pas un éventuel répertoire reservation/list dans html, mais passera cette requête au fichier index.php

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Par défaut
    Merci beaucoup pour cette réponse, cela m'a beaucoup aidé.
    En effet, je peux accéder aux différentes pages, seulement, il y a d'autres erreurs mais je pense que je vais pouvoir m'en sortir.
    Merci encore.

    @+

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

Discussions similaires

  1. Question d'archi-débutant :VB6 vers VB.NET premier problème
    Par zedude33 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/02/2007, 15h29
  2. Petite question d'un débutant en C++
    Par faboulous dans le forum C++
    Réponses: 6
    Dernier message: 04/08/2006, 15h43
  3. Réponses: 4
    Dernier message: 06/07/2006, 17h14
  4. Question d'un débutant sur Access
    Par RV80 dans le forum Access
    Réponses: 8
    Dernier message: 12/06/2006, 12h32
  5. question d'un débutant...
    Par chti_juanito dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/06/2005, 10h29

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