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 :

Démarrer avec Zend Framework 2 [Tutoriel]


Sujet :

Zend Framework PHP

  1. #1
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 416
    Points
    91 416
    Billets dans le blog
    20
    Par défaut Démarrer avec Zend Framework 2


    Philippe Peso vous propose une traduction de l'article anglophone Getting started with Zend Framework 2 (beta) : Démarrer avec Zend Framework 2.

    Ce tutoriel a été rédigé pour vous présenter Zend Framework 2 en créant une application basée sur une base de données basique et utilisant une conception Modèle-Vue-Contrôleur. Après la lecture de ce document, vous aurez une application ZF2 fonctionnelle et vous pourrez examiner le code pour en comprendre le fonctionnement et les mécanismes.
    N'hésitez pas à faire part de vos remarques et commentaires.

    Démarrer avec Zend Framework 2

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Bonjour Bovino,
    J'ai déjà une remarque, que je vois trop souvent dans la plupart des tutoriels destinés à l'installation de framework.

    Vous devez également vous assurer qu'Apache est configuré pour supporter les fichiers .htaccess. Pour cela vous pouvez changer la directive


    en


    Il faut laisser en
    En passant à All, nous voyons trop souvant des surcharge au niveau de .htaccess et cela rends l'application de moins en moins maintenable.

    Certes ce n'est qu'un avis, mais voilà, pour moi c'est important

  3. #3
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Cool la traduction, par contre c'est sur la beta 4 et la beta 5 à chamboulé pas mal de choses (ajout du translate, modif du Zend Db, etc...), perso j'arrive toujours pas à utiliser des librairies externes, et mes view helpers ne fonctionnent plus depuis que je suis passé de la 4 à la 5, de plus la disparition de Zend\Locale fait planter tous mes validateur persos ^^

    En tout cas j'attend avec impatience la version RC (a la fin de l'été apparement) et j'espère que les tutos seront plus complet, en attendant celui de Rob Allen est déjà bien pratique, d'ailleurs pour ceux qui veulent tester la beta 5 : http://akrabat.com/wp-content/upload...ramework-2.pdf (en Anglais)


    Les boutons et existent, servez-vous en

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 106
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par 5h4rk Voir le message
    Il faut laisser en
    En passant à All, nous voyons trop souvant des surcharge au niveau de .htaccess et cela rends l'application de moins en moins maintenable.
    Que veux-tu dire par là ? Que le code devient moins facilement maintenable ?
    Donc tu passes le contenu original du .htaccess dans ton virtual host (si tu utilises apache) ?

  5. #5
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Citation Envoyé par GATEN Voir le message
    Que veux-tu dire par là ? Que le code devient moins facilement maintenable ?
    Donc tu passes le contenu original du .htaccess dans ton virtual host (si tu utilises apache) ?
    Tout à fait.
    Par contre, pas le code mais l'application.
    Car cela offre la possibilité de mettre des surcharges apache un peu partout.

    Combien de fois j'ai vu des personnes avoir des problèmes avec ça.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 106
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par 5h4rk Voir le message
    Tout à fait.
    Par contre, pas le code mais l'application.
    Car cela offre la possibilité de mettre des surcharges apache un peu partout.

    Combien de fois j'ai vu des personnes avoir des problèmes avec ça.
    Merci de ton conseil, je viens de l'appliquer.
    C'est vrai que j'ai déjà passé des heures à déboguer à cause d'un .htaccess qui traînait et c'est extrêmement désagréable.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Erreur
    Bonjour,

    Dans votre traduction, il y a une inversion :

    Dans la version originale de l'article, le code concernant le service_manager est bien présent dans global.php et non dans config/application.config.php comme mentionné dans votre traduction.

    Il faut donc corriger :
    config/autoload/global.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
     
    <?php
    return array(
        'db' => array(
            'driver' => 'Pdo',
            'dsn' => 'mysql:host=...;dbname=...',
            'username' => '...',
            'password' => '...',
            'driver_options' => array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
            ),
        ),
        'service_manager' => array(
            'factories' => array(
                'Zend\Db\Adapter\Adapter'
                        => 'Zend\Db\Adapter\AdapterServiceFactory',
            ),
        ),
    );
    config/application.config.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
    return array(
        'modules' => array(
            'Application',
            'Album',
        ),
        'module_listener_options' => array(
            'config_glob_paths'    => array(
                'config/autoload/{,*.}{global,local}.php',
            ),
            'module_paths' => array(
                './module',
                './vendor',
            ),
        ),
    );

    Sinon le code fonctionne bien sur un serveur OVH, offre perso, et zendframework2.

    Cordialement

  8. #8
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Bonjour,
    Le tutoriel traduit ici concernait la beta 4 et c'est exactement ce qui était demandé dans le guide en anglais.
    Ce que tu évoques par contre est vrai pour la dernière version, mais je pense que la mise à jour aura lieu prochainement.

    Citation Envoyé par efreet_cs Voir le message
    Bonjour,

    Dans votre traduction, il y a une inversion :

    Dans la version originale de l'article, le code concernant le service_manager est bien présent dans global.php et non dans config/application.config.php comme mentionné dans votre traduction.

    Il faut donc corriger :
    config/autoload/global.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
     
    <?php
    return array(
        'db' => array(
            'driver' => 'Pdo',
            'dsn' => 'mysql:host=...;dbname=...',
            'username' => '...',
            'password' => '...',
            'driver_options' => array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
            ),
        ),
        'service_manager' => array(
            'factories' => array(
                'Zend\Db\Adapter\Adapter'
                        => 'Zend\Db\Adapter\AdapterServiceFactory',
            ),
        ),
    );
    config/application.config.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
    return array(
        'modules' => array(
            'Application',
            'Album',
        ),
        'module_listener_options' => array(
            'config_glob_paths'    => array(
                'config/autoload/{,*.}{global,local}.php',
            ),
            'module_paths' => array(
                './module',
                './vendor',
            ),
        ),
    );

    Sinon le code fonctionne bien sur un serveur OVH, offre perso, et zendframework2.

    Cordialement

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Points : 55
    Points
    55
    Par défaut
    Salut,

    j'avais fait ce tuto avec succès il y'a quelques semaines. Je vois que certaines choses ont changé depuis. Je l'ai donc repris à 0 avec une fresh install de zf2 2.0.4.

    Or, au milieu du tuto, au premier affichage de la liste des albums j'ai cette erreur désormais :

    A 404 error occurred
    Page not found.

    The requested controller could not be mapped to an existing controller class.

    Controller:
    album(resolves to invalid controller class or alias: album)


    Petite erreur constatée aussi, dans l'arborescence conseillée du module, il manque un sous niveau je pense, il faudrait que cela soit :

    zf2-tutorial/
    ----/module
    --------/Album
    ------------/config
    ------------/src
    ------------/Album
    ---------------- /Controller
    ----------------/Form
    ----------------/Model

    ------------/view
    -------- /album

    enfin je crois...

    Merci d'avance.

  10. #10
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Alors aujourd'hui, j'ai voulu tenté Zf2 mais comme je suis une bur.. en linux apache2 en co, je vous fais part de mon erreur ...

    J'ai suivi le tuto et tout va bien jusqu'au lancement du site avec l'url:
    'zf2-tutorial.localhost' j'ai bien l'affichage demandée.

    Par contre, et c là que je suis mauvais, je teste le routing en faisant:
    'zf2-tutorial.localhost/1234' et là deux affichages se montrent à moi (aléatoirement) soit j'ai:
    une page avec du html en <h1> donc que des gros caractères et deux erreurs
    (je vous donne le code source de la page)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <h1>
    Notice: Use of undefined constant Zend\I18n\Translator\null - assumed 'Zend\I18n\Translator\null' in /home/fench/web/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php on line 561
     
    Call Stack: ...
    (dernier appel: 0.0359    1657400  19. Zend\I18n\Translator\Translator->loadMessages() /home/fench/web/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php:400)
     
    Fatal error: Call to a member function —†w—†w() on a non-object in /home/fench/web/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php on line 562
     
    Call Stack: ....
    (dernier appel: 0.0359    1657400  19. Zend\I18n\Translator\Translator->loadMessages() /home/fench/web/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/I18n/Translator/Translator.php:400
    ou alors j'ai comme résultat le passage l'url 'zf2-tutorial.localhost/1234' a:
    'http://www.zf2-tutorial.localhost/1234' qui donne comme page 'adresse introuvable ...

    Voilà donc je galère un peu même beaucoup,

    Merci
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par htrouve Voir le message
    Salut,
    j'avais fait ce tuto avec succès il y'a quelques semaines. Je vois que certaines choses ont changé depuis.
    Au temps pour moi, j'avais fait le tuto original en anglais. Je l'ai refait, et tout fonctionne désormais. J'ai vu quelques différences, comme l'évocation de 'invokables' comme clé de tableau dans module.config.php et 2/3 autres trucs comme des noms de méthodes différents.

    Je ne saurais dire ce qui n'a pas fonctionné pour moi ici. Mais bon, c'est réglé de mon côté.

  12. #12
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Le problème est résolu, attention à l'utilisation de 'Composer' lors de l'installation de la platform.

    En effet dans le fichier .json du module 'Composer', il y a la ligne
    "zendframework/zendframework": "2.*" dans la partie 'Required' pour la version Php et Zend2. Cette ligne entraîne l'acceptation de toutes les versions 2.* et, elle est donc suceptible d'installer une version non stable.

    Si telle est le cas, vous modifiez cette ligne avec une version stable comme la 2.0.0 (jusqu'à la 2.0.4 actuellement) puis les lignes de commandes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    php composer.phar update
    php composer.phar install
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'ai suivi le tutoriel (tel que disponible actuellement sur le site de Zend).
    Tout fonctionne bien ou presque (même si j'ai du corriger une paire de petites erreurs dans l'exemple).
    Par contre, autant le formulaire de modification d'album fonctionne bien, autant celui d'ajout d'album est sans effet.
    Quand je clique sur le bouton 'Add', il n'y a pas d'effet!

    Dans addAction()
    $request = $this->getRequest();
    if ($request->isPost()) {
    isPost() n'est jamais vraie...

    Je ne comprends ce qui peut mal se passer, car le formulaire est le même que dans le cas d'une modification d'album.

    J'ai manqué quelque chose? De quel côté puis-je chercher pour trouver une solution ?

    Précision : j'étais en version Framework 2.0.6 et je suis passé ensuite en 2.1.0...

  14. #14
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    bonjour,

    J'ai suivi ce tutoriel pour mettre en place le framework.

    La première page s'affiche sans problèmes j'en suis à mettre le controlleur et les vues en place seulement voila j'ai comme soucis :


    A 404 error occurred
    Page not found.
    The requested controller could not be mapped to an existing controller class.

    Controller:
    album(resolves to invalid controller class or alias: album)
    No Exception available

    A priori il s'agit d'une erreur de routage, je n'arrive pas à atteindre mon controlleur.

    j'ai placé mon controlleur dans : module/Album/src/Album/Controller/AlbumController.php

    et mes vues dans : module/Album/view/album/album/index.phtml

    est ce un problème d'architecture ou dois je voir au niveau des déclarations de mon routage ???

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    C'est un autres pb merci de voir ce lien : http://framework.zend.com/manual/2.0...ntrollers.html

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    j'ai exactement le même problème que kawa67, ça me rassure un peu, je me sens moins seul...

    Mais du coup je me sens un peu désemparé devant le tuto que je pense avoir suivi correctement...

    Si quelqu'un pouvait donner une solution à ce problème, j'en serais très heureux.

    Merci d'avance.

  17. #17
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,


    Effectivement le tuto n'est pas à jour avec les dernières versions de Zend, c'est un peu déroutant quand on voudrait débuter avec Zend 2.0.


    Pour pas vous prendre la tête, cloner le repo de la personne qui est à la base du travail, à l'adresse suivante : https://github.com/akrabat/zf2-tutorial-to-go

    Télécharger ou cloner le repo, suivre les 2 instructions d'installation, et c'est bon, le projet fonctionne. L'intérêt est de lire lire le tuto pour comprendre le code.

    Bonne lecture !

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Bloqué au tuto de zend 2
    J'ai suivi les instructions à la lettre et je suis bloqué sur

    A 404 error occurred
    Page not found.
    The requested controller could not be mapped to an existing controller class.

    Controller:
    album(resolves to invalid controller class or alias: album)
    No Exception available
    Pouvez-vous m'aidez ?

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je pense que la création du tuto ZF2 a été rushé sans vérification.

    Quand je mets en place le code source original du tuto, cette erreur disparais et une autre fais surface.

    La très mauvaise documentation française de ZF2 ne me permet pas d'avancer. Il va falloir que je refasse tout et que j'utilise google trad sur la version original.

    Travail de tuto rushé et bâclé.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/12/2007, 00h33
  2. Réponses: 1
    Dernier message: 28/11/2007, 12h52
  3. [View] Problème d'accents avec zend framework
    Par fanette dans le forum Autres composants
    Réponses: 3
    Dernier message: 14/08/2007, 17h17
  4. Insert avec zend framework
    Par rugby_roux dans le forum Zend
    Réponses: 1
    Dernier message: 30/01/2007, 18h22

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