Précédent   Forum du club des développeurs et IT Pro > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 16/07/2012, 13h03   #1
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 093
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 18 093
Points : 64 586
Points : 64 586
Par défaut [ZF 2] 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.

Citation:
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 16/07/2012, 18h40   #2
5h4rk
Modérateur
 
Avatar de 5h4rk
 
Homme Loïc
Ingénieur étude et développement
Inscription : février 2011
Messages : 813
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 27
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Ingénieur étude et développement
Secteur : High Tech - Multimédia et Internet

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

Citation:
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
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2012, 18h57   #3
amoiraud
Membre émérite
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 554
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 554
Points : 968
Points : 968
Envoyer un message via MSN à amoiraud
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)
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2012, 11h04   #4
GATEN
Membre du Club
 
Homme
Développeur Web
Inscription : septembre 2011
Messages : 47
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 : 47
Points : 48
Points : 48
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) ?
GATEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2012, 18h36   #5
5h4rk
Modérateur
 
Avatar de 5h4rk
 
Homme Loïc
Ingénieur étude et développement
Inscription : février 2011
Messages : 813
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 27
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Ingénieur étude et développement
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 813
Points : 1 293
Points : 1 293
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.
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2012, 16h51   #6
GATEN
Membre du Club
 
Homme
Développeur Web
Inscription : septembre 2011
Messages : 47
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 : 47
Points : 48
Points : 48
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.
GATEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 11h50   #7
efreet_cs
Invité de passage
 
Inscription : avril 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 11
Points : 3
Points : 3
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 :
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 :
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
efreet_cs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 14h30   #8
5h4rk
Modérateur
 
Avatar de 5h4rk
 
Homme Loïc
Ingénieur étude et développement
Inscription : février 2011
Messages : 813
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 27
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Ingénieur étude et développement
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 813
Points : 1 293
Points : 1 293
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 :
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 :
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
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 15h50   #9
htrouve
Membre du Club
 
Inscription : janvier 2010
Messages : 59
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 59
Points : 47
Points : 47
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.
htrouve est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 16h36   #10
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
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 346
Points : 3 231
Points : 3 231
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 :
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)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 19h13   #11
htrouve
Membre du Club
 
Inscription : janvier 2010
Messages : 59
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 59
Points : 47
Points : 47
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é.
htrouve est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 09h51   #12
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
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 346
Points : 3 231
Points : 3 231
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 :
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)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2013, 16h50   #13
PPonce
Invité de passage
 
Inscription : juin 2007
Messages : 7
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : juin 2007
Messages : 7
Points : 1
Points : 1
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()
Citation:
$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...
PPonce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2013, 21h11   #14
kawa67
Futur Membre du Club
 
Développeur informatique
Inscription : mai 2010
Messages : 58
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2010
Messages : 58
Points : 16
Points : 16
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 :


Citation:
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 ???
kawa67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2013, 02h25   #15
rami.neifar
Invité de passage
 
Homme Rami NEIFAR
Inscription : mars 2013
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Rami NEIFAR
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
C'est un autres pb merci de voir ce lien : http://framework.zend.com/manual/2.0...ntrollers.html
rami.neifar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2013, 16h37   #16
ThE BiShOp*
Invité régulier
 
Inscription : mai 2007
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 24
Points : 6
Points : 6
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.
ThE BiShOp* est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web