Zend Framework

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-08-2016 22:19:11

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Migration ZF2 -> ZF3

Hello.

Je viens de migrer aujourd'hui un site (projet non terminé) en zf3.

Les migrations ça fait toujours un peu peur. Combien de temps cela va-t-il prendre ? Vais-je galérer ?
Je vous fait donc un petit retour d'une expérience plutôt agréable.

Bon, au départ j'ai voulu mettre à jour le projet en zf3 et le doc de migration mais ça a complètement foiré, en tout cas ça promettait des heures de galères.

J'ai donc créé un nouveau projet et migré mes modules.

Pour l'install proprement dite:

J'ai suivi le court README.md du github: https://github.com/zendframework/zendframework

Puis j'ai installé manuellement les composants dont j'avais besoin pour faire tourner mon appli:

Code:

composer require zendframework/zend-db
composer require zendframework/zend-filter
composer require zendframework/zend-json
composer require zendframework/zend-router
composer require zendframework/zend-validator
...

Nota: Si vous n'avez pas aliasé composer, il faut passer par le traditionnel "php composer.phar" au lieu de "composer".

J'ai dû ajouter 'Zend\Router' et 'Zend\Validator' au tableau "modules.config.php" pour que ces composants fonctionnent. J'ai trouvé cette astuce sur une page web. Je n'ai pas cherché plus loin le pourquoi.

Pour la migration des modules de l'application, il a suffit de:

- copier les dossiers des modules
- de supprimer le getAutoloaderConfig dans "Module.php"
- inscrire les modules dans "config >modules.config.php"
- inscrire les modules dans 'autoload'->'psr-4' du "composer.json" et lancer la commande "composer dump-autoload" dans le shell.
- modifier les "module.config.php" en m'aidant du "module.config.php" du module/Application fourni par le skeletton.


A noter d'ailleurs que dans les "module.config.php", la section 'controllers' ne prends plus 'invokables' et est remplacée par 'factories'.

Je pense que c'est la meilleure solution de partir sur un skeleton vierge et d'importer les modules. Ça permet de voir tout de suite les petites différences d'architecture et surtout de configuration.

Tout fonctionne correctement. Je vous invite à migrer. smile


PS: Je n'utilise pas Doctrine et je n'ai donc pas testé avec.

PS2: Un forum ZF3 peut-être ?

------------------------
Annonce de la release: https://framework.zend.com/blog/2016-06 … ork-3.html

README.md du github: https://github.com/zendframework/zendframework

Doc de migration (si vous voulez la tenter...): https://docs.zendframework.com/tutorial … plication/

Dernière modification par Bouks (06-08-2016 11:37:14)


22914720

Hors ligne

 

#2 05-08-2016 10:26:43

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 411

Re: Migration ZF2 -> ZF3

Merci pour ce retour très encourageant. J'espère que j'arriverai a migrer mon projet de 2 ans de dev en zf3.

J'ai du mal a voir tout ce qui est impacté ou ce que je dois changer, les clé invokables au niveau de mes controllers j'en utilise pas y a t'il d'autre truc ? c'est à expérimenter.

Combien de temps a tu mis au final pour ton projet ? Quel ampleur a ton projet (en terme de ligne de code), combien de module avait tu ? Quel était ton architecture de Test unitaires si tu en avait une ?

Merci encore une fois pour ton retour, cela va surement rassurer ceux qui hésitent à migrer.

J'ai vraiment la conviction que pour cette version 3 et l'excellente doc qu'ils ont produit va raviver la flamme autour du ZF


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 05-08-2016 11:21:48

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1251

Re: Migration ZF2 -> ZF3

Hello, super ! Merci pour ton retour.

Je suis pas sûr que la flamme autour du ZF3 se ravive mais je l'espère !! Je pense que Zend-Expressive apporte une bonne solution en étant plus léger et permet d'utiliser les composant du ZF3 donc c'est plutôt cool de garder le nez dedans sans utiliser tout le framework smile.


ZendFramework 2 Certified Architect

Besoin d'un freelance Zend Framework ?

Hors ligne

 

#4 05-08-2016 14:11:36

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 411

Re: Migration ZF2 -> ZF3

En France le ZF peine a s'installer en raison du concurrent principal local. C'est sur que si ZF par le biais de Zend-expressive apporte quelque chose de nouveau, j'espère aussi comme toi Orkin que la flamme prenne de l'ampleur.

J'ai juste peur que nos devs prennent par chauvinisme, méconnaissance ou même médisance de ZF, le concurrent local. Malgré le fait que le choix d'un framework se fasse plutôt par besoin, nécessité ou compétence que par simple choix géographique.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 06-08-2016 01:51:48

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Re: Migration ZF2 -> ZF3

En dehors de l'échec de migration pure, en comptant la prise d'infos et la migration sur nouveau skeleton, j'ai du mettre 2-3h à tout casser...

C'est un petit projet et non terminé, je n'ai pour l'instant que trois modules. Je totalise 2819 lignes dans le répertoire module (uniquement pour les fichiers .php). C'est une application qui gère différents sites avec chacun publication d'articles (textes, images, vidéos...) et gestion de publicités, en plusieurs langues. J'ai terminé la gestion des sites, pratiquement fini la gestion des articles, il ne me reste plus que la gestion des publicités.

Il faut noter que je n'utilise pas ZF de façon "traditionnelle". Notamment dans l'usage des modules et la séparation des fonctionnalités par module. Par exemple dans mon projet, je n'ai pas un module "site", un module "article" et un module "publicité", mais un module "Common", un module "backoffice", un module "front".
Mes parties modèle (DBAL, ORM, etc.) et métier, à part l'utilisation de Zend\DB (uniquement pour la construction de requêtes SQL simples, sinon je me repose sur PDO pour tout le reste -- gestion de connexions, préparations ... -- et en manuel pour la construction de requêtes complexes, et pour l'ORM c'est fait maison, concis) sont en pur PHP, donc pas de Doctrine.
J'utilise aussi quelques validateurs de ZF, mais j'essaie d'utiliser au maximum des fonctions natives, bien plus performantes car elles n'ont pas besoin d'être compilées à l’exécution, et de façon générale pour toute fonction qui n'a pas besoin de "patch". Quant aux validateurs métiers, ZF ne peut rien faire sur ce point.

Ça permet à mon code critique de ne pas être complètement dépendant de DEUX frameworks externes. C'est aussi bien plus performant. Et ça rend les migrations, voire des changements de frameworks, plus faciles et rapides. Mon code métier est donc plus maintenable dans le temps et moins dépendant de side-effects issus de modifications que je ne peux contrôler (puisque faites par d'autres).
Je n'utilise pas non plus Zend\Form, qui, après quelques usages quand je me suis mis à ZF, ne m'a pas du tout convaincu. Je suis d'ailleurs très étonné que ce composant soit inclus dans ZF3 alors que mwop avait parlé de son éviction à juste titre.

Donc, en gros, je valide la gestion des modules, le routage, l'événementiel, les contrôleurs, les vues et la gestion des configurations si je n'oublie rien. La partie VC du MVC, ainsi que l'événementiel, donc.


J'ai, par ailleurs, dans mes projets récents, déporté beaucoup de la partie Vue et du routage en front-end avec angular (il ne me reste que les layout/index et le routage des webservices dans ZF).
Je pense éventuellement étudier Expressive qui m'a l'air adapté aux nouveaux usages backend. Expressive qui apparemment permet de choisir d'autres composants, comme fast-route pour le routage par exemple, mais je n'ai pas encore eu le temps d'étudier ces composants "compatibles" pour en déterminer leurs avantages et inconvénients.
L'architecture n'est évidemment pas la même que dans ZF, notamment dans la notion de chaînage et, il me semble, la décentralisation physique des sources de données et de services.

Concernant les tests unitaires, et en dehors de ma partie modèle et métier (qui n'utilise pas ou très peu de composants ZF), je n'en ai pas encore fait de TU sur ce projet. J'utilise PHPUnit. Mais dans le cadre de développements en solo, et en phase de développement initial sans mise en production ni recettes, j'ai depuis longtemps abandonné le TDD car c'est trop coûteux et avec peu de bénéfices. J'écris donc mes TU en phase finale pour valider le projet et sécuriser les modifications ultérieures de l'application. Il y a évidemment quelques exceptions pour certaines fonctionnalités critiques ou particulièrement complexes pour lesquelles je rédige des tests assez rapidement.

Les techniques et les usages évoluent rapidement, de nouveaux venus arrivent chaque années, je pense que l'usage des frameworks est très utile pour s'affranchir de la gestion de certaines fonctionnalités "bas niveau", mais je pense aussi qu'il faut pouvoir évoluer le plus aisément possible, et à un coût le plus bas possible, et donc avoir des dépendances faibles aux bibliothèques/frameworks plutôt que fortes.


@JGreco: "J'espère que j'arriverai a migrer mon projet de 2 ans de dev en zf3."
Chiche. Installe un skeleton zf3 et donne-toi une journée. Si ça se passe bien et que c'est réglé dans la journée tu seras très content. Si ça foire, tu n'auras perdu qu'une journée, ce n'est pas grand chose, et tu n'auras pas touché à ton projet, donc pas de risque. Et tu auras acquis des connaissances en ZF3, ce qui te servira pour les futurs projets. smile

Dernière modification par Bouks (06-08-2016 12:06:02)


22914720

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages