Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour a tous je débute en MVC et avec Zend Framework 2, et j'aurais voulu savoir si vous connaissiez de bon tutoriel ou exemples s'il vous plait car j'avoue je m'y perd.
Par exemple comment fait-on pour changer de controller en cliquant sur un lien?
Ou alors comment fait-on pour changer d'action ?
Merci d'avance pour vos réponses
PS : désolé de poser une question qui vous semble surement bête et tout ce qu'on veut.
Hors ligne
Salut, dans un premier temps je te conseil de lire la documentation officielle et de faire le quickstart. Tu vas trouver tout ça sur github et la doc sur le site du zendframework. Toutes ces questions y trouveront réponse. Pour le reste il y a le forum.
Prends bien le temps de lire tout ça, de faire le quickstart. Parfois c'est frustrant on voudrait aller vite tout de suite mais bon on est tous passé par là
Hors ligne
Merci beaucoup pour ta réponse, je vais regarder le quickstart de suite.
Par contre va falloir que j'adapte car lorsque je créer mon projet php en local avec Zend 10 je n'obtiens pas du tout la même arborescence de dossier. Est ce normal?
Hors ligne
Eu oui c'est normal, il y en a un c'est Zend 1 et l'autre Zend 2 c'est pas du tout la même chose.
Hors ligne
salut,
le tuto sur le site officiel est le meilleur point de départ aujourd'hui
sinon tu as : http://php-underground.blogspot.fr/2012 … ork-2.html
et si ça peut t'aider à comprendre, j'ai écris un tuto sur les modules et un sur le serviceManager :
modules ZF2 : http://aromatix.fr/?p=329
ServiceManager : http://aromatix.fr/?p=326
Dernière modification par aromatix (18-03-2013 17:54:51)
Hors ligne
Orkin : Quand tu parle de zend 1 et zend 2 tu parle du framework?
aromatix : merci pour tes liens je vais y jeter un œil de suite.
Encore merci à vous de prendre le temps de m'expliquer et m'aider afin que je comprenne.
Hors ligne
pour changer de controlleur/action en cliquant sur un lien,
1 - dans la config de ton module tu pourai créer une route pointant vers ton controller/action (si ce n'est pas déjà fait )
supposont que tu a un controller ProfileController, assure-toi qu'il est renseigné dans ta config ( par exemple comme ceci) :
'controllers' => array(
'invokables' => array(
'Profile\Controller\Index' => 'Profile\Controller\IndexController'
),
),
2 - tu ajoute une route vers l'action voulue :
'profile' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/profile', // <- ta route
'defaults' => array(
'controller' => 'Profile\Controller\Index',
'action' => 'index',
),
),
),
3 - dans ta vue tu affiche une url composée de la route que tu a créée
les aides d'action $this->url() et $this->basePath() te faciliteront la vie
car ça t'évite de coder tes url en dur
par exemple comme ceci :
<a href="<?php echo $this->basePath('/profile') ?>"> Profile</a>
ou
<a href="<?php echo $this->basePath().'/profile' ?>"> Profile</a> // ça marche aussi
<a href="<?php echo $this->url('profile', array('param1' => 'valeur', 'id' => 123 )); ?>">Profile</a>
Dernière modification par aromatix (18-03-2013 19:37:25)
Hors ligne
re bonsoir,
voici mon arborescence :
mon fichier : module.config.php :
'application' => array( 'type' => 'Literal', 'options' => array( 'route' => '/application', 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Index', 'action' => 'index', ), ), 'may_terminate' => true, 'child_routes' => array( 'default' => array( 'type' => 'Segment', 'options' => array( 'route' => '/[:controller[/:action]]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( ), ), ), ), ), 'login' => array( 'type' => 'Literal', 'options' => array( 'route' => '/login', 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Login', 'action' => 'index', ), ), 'may_terminate' => true, 'child_routes' => array( 'default' => array( 'type' => 'Segment', 'options' => array( 'route' => '/[:controller[/:action]]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( ), ), ), ), ),
et ensuite :
'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController', 'Login\Controller\Login' => 'Login\Controller\LoginController' ), ),
et quand je tape l'url de mon site en ajoutant "/Login" j'ai une belle erreur 404
j'ai du mal faire quelque chose mais je ne vois pas quoi?
Pourriez vous m'aidez svp
Merci d'avance
Hors ligne
j'ai trouver désolé pour ce double post.
Il fallait juste remplacé :
'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController', 'Login\Controller\Login' => 'Login\Controller\LoginController' ), ),
par :
'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController', 'Application\Controller\Login' => 'Application\Controller\LoginController' ), ),
encore désolé du double post
Hors ligne
shishi a écrit:
Orkin : Quand tu parle de zend 1 et zend 2 tu parle du framework?
Oui
Hors ligne
ah ok j'utilise le 2 mais c'est zend 10 (le logiciel) qui me généré la structure et ce n'était pas la même.
Dernière petite question si je créé un répertoire "Forms" je dois définir une route je pense?si oui ou?
merci d'avance
Hors ligne
pour le formulaire non.
tu l'instancies directement dans ton action, tu lui donne des paramètres éventuels, et tu le retourne dans ta vue (dans laquelle tu l'affiche)
je crois que tu a généré une appli ZF2 , en utilisant Zend Studio 10
pour info :
la société qui centralise le développement de php etc autres service : appelée zend
il y a le moteur php : appelé zend engine (développé par zend)
le framework php : zend framework 1 & 2
l'environnement de développement : zend studio (qui en est à la version 10 aujourd'hui)
Hors ligne
Exactement j'ai généré l'appli ZF2 avec zend 10.
Quand je parlais de route pour le formulaire c'est parce que j'aurais voulu créer un dossier Forms et dedans mettre mes classes par exemple User qui serait étendu a Zend/Form?
J’espère avoir étais clair.
Hors ligne
Plop, encore une fois quelqu'un qui ne lit pas la doc. Franchement tu l'aurais lu tu ne sortirais pas autant d’âneries .
Les routes concernent uniquement les contrôleurs, elles représentent grosso modo les urls que visitent les membres du site. Ca n'a pas de sens de visiter un formulaire par contre une page qui en contient un c'est déjà mieux.
Pour le reste des questions tu trouveras TOUTES tes réponses dans la documentation officielle qui ne s'arrête pas qu'au quickstart que tu n'as surement pas lu en entier puisqu'il explique comment utiliser les routes, comment faire un formulaire etc ...
On est pas là pour décortiquer la doc faut prendre sur toi, c'est chiant, frustrant mais si tu veux faire les choses bien tu n'as pas le choix. Lis tout bien calmement une première fois et surtout (ça ne veut pas dire lire que ça mais faut y apporter une attention plus particulière)
- le service manager
- les routes
- les formulaires
- mvc
- view helpers
- plugins
- controller
Et une fois que tu as lu tout ça tu reprends le quickstart et tu le fais évoluer en ton application en t'aidant de la doc et ça ira tout seul
Hors ligne
ok je vais tout relire. je reviendrais vers vous si j'ai des soucis (quoique j'attendrais d'être sur de pas poser une question conne).
Hors ligne
C'est pour toi que je dis ça. Faut aussi te mettre à notre place, ces questions ont déjà été posées et répondues plusieurs fois. Donc forcément quand une nouvelle arrive sans avoir recherché un minimum sur le forum bah ça énerve, du coup la réponse est moins aimable, le membre est encore plus frustré etc ...
Hors ligne
Ne t’inquiète pas j'avais très bien compris ça mais faut reconnaitre parfois que même en lisant la doc il y a du flou qui persiste (ou alors cela ne concerne que moi ) mais bon ne changeons pas de sujet je comprend que certains en ont marre de répété les même réponses.
Y'a pas de souci c'est déjà super gentil d'avoir répondu.
Hors ligne
C'est normal que ça soit flou, j'avais lu une étude sur la monté en compétence sur les frameworks. Et en fait l'étudiant a l'impression de ne pas progresser mais il progresse constamment. Ce pourquoi je te conseil de le lire tranquillement une fois ou deux juste pour bien assimiler les choses, comprendre l'anglais si tu as des difficultés.
Ensuite tu prends le quickstart avec la doc, tu le fais et une fois qu'il est fait tu le modifies pour arriver à ton application toujours en t'aidant de la doc et là normalement tu auras une architecture propre et tu sauras utiliser le service manager, les formulaires (en partie), faire des routes etc ...
Hors ligne
Bon bah voila je viens d'apprendre que sur le serveur c'était la version 5.1.6 or il faut avoir au maximum zend framework 1.6 d'après ce que j'ai lu.
J'ai plus qu'a me plonger dans la doc de cette version encore merci à vous 2 pour votre aide et vos conseils.
Hors ligne
on a parlé de ZF2,
si 5.1.6 c'est la version php, tes sources sont vieilles. et ZF 1.6 a eu droit à pas mal de mises à jours depuis ( et je croix que ça fonctionne avec php >=5.2)
ZF2, fonctionne avec php 5.3.3 minimum, et j'imagine que ton serveur web est récent, sinon les lignes de code ci-dessus n'auraient pas fonctionné sur ta machine. (et en plus tu utilise zend studio 10)
N.B. filtre tes recherches sur google à moins d'un mois par exemple, ou utilise des termes comme 'ZF2' dans ta recherche
Hors ligne
En plus il faut savoir que ZF1.X et ZF2 sont des framework totalement différents et à l'heure actuelle je suis pas sûr qu'apprendre le ZF1 sur une vieille version ai un intérêt quelconque puisque ce framework est voué à disparaitre. De plus si tu as un php 5.1.6 sur ton serveur c'est que ton hébergeur est bien pourri parce qu'il a énormément de retard. Sur les hébergeurs de maintenant tu as minimum php 5.3.3 voir php 5.4
Hors ligne
Bonjour à vous 2,
au début je parlais bien de ZF2 et de zend 10 et je développé en local avec la dernière version de php donc tout fonctionné bien.
Et j'ai appris hier que le serveur qui hébergé les applications de ma société n'avait que la version 5.1.6 de php, et en effet lorsque j'ai mis mes quelques ligne de code dessus j'avais de jolies erreurs.
En recherchant sur google j'ai vu que ZF2 ne fonctionné qu'avec la version php 5.3.3 (pour des raison de sécurité entre autre d'après ce que j'ai compris).
Et toujours en cherchant su le net : ce lien il est dit que la version 1.6 du ZF et la dernière a supporter la version de mon php, or dans la documentation du ZF 1.7 il est marqué ceci :
"Zend recommande la version 5.2.3 de PHP ou supérieure pour des questions de sécurité et de performances, bien que le Zend Framework ne requière qu'au minimum la version 5.1.4 de PHP."
Vous me conseillez quelle version du framework?
Et concernant le serveur de ma société oui il est surement vieux
Hors ligne
Bah c'est simple le conseil c'est mettre à jour le serveur de ta société pour avoir du php 5.3.3 minimum ... C'est un peu contradictoire on va dire certaines sociétés veulent des portails web innovants utilisant les nouvelles technologies mais se baladent encore avec des environnements archaïques ...
Donc déjà il y a un travail à faire de ce côté pour voir comment monter php en version 5.3.3 sans pour autant foutre en l'air les applications qui tournent déjà dessus.
Ensuite Zend 1.6 c'est juste la préhistoire c'est vieux. Déjà que la dernière version du ZF1 qui doit être la 11 ou la 12 ça serait un bon début mais encore une fois ce framework ne sera bientôt plus supporté donc perdre du temps à apprendre un framework qui va disparaitre je trouve que c'est inutile. Donc je te conseil ZF2 .
Après si tu n'as pas le choix bah fais avec les moyens du bord mais je trouve ça un peu dommage et perdre de l'argent et de l'énergie comme ça.
Hors ligne
Je ne pense pas que ma société soit prête à mettre a jour sa version de php je vais donc devoir faire avec les moyen que j'ai je vais partir sur le framework 1.6 je pense.
Je trouve ça dommage également.
Que veux tu dire par : "ce framework ne sera bientôt plus supporté"? car si je développe toujours dans cette environnement ça ne posera pas de problème?
Hors ligne
Non ça posera pas de problème. Juste que Zend arrêtera de le faire évoluer. De plus la version 1.6 comporte des bugs non corrigés qui le sont dans la 1.7 etc ...
Hors ligne