Migration étape par étape de Zend Framework 1 à 2

je dois migrer une application de Zend Framework 1.12.0 vers la version 2. Il semble y avoir pas encore de guides de migration. J'ai déjà étudié les conventions de codage de ZF2 et j'ai adopté l'injection de dépendances (ZendDi) et les espaces de noms PHP 5.3. Mon but est de reformuler mon application ZF1 en un module ZF2.

Question: Est-il possible de procéder étape par étape avec unapplication de travail après chaque étape et éviter les gros remaniements les étapes<!--6? Si oui, quelles sont les étapes?

Voici mon idée d'une telle migration étape par étape, mais je ne sais pas si je finis avec une application de travail après chaque étape:

  1. Commencez par configurer le ZF2 Squelette de l'Application
  2. configurer un nouveau module (MyApp) et réorganiser le contenu de mon application ZF1 dans la structure de dossier du module MyApp. Puis configurer la configuration de base et bootstrapping et migrer le Controller index en l'étendant à partir du Controller D'Abstraction ZF2. Les modèles (Zend_Db) et les vues (Zend_View) seront migrés plus tard. Le but ici est d'avoir un Controller IndexController::indexAction qui n'a pas beaucoup de dépendances.
  3. configurer plus de configuration et bootstrapping (Routing, Translate, Locale, Cache, Db, Acl, ViewHelpers, ...). J'aimerais d'abord configurer les versions ZF1 de ces composants et les migrer ensuite une par une.
  4. Migrer l' autres controllers et configurer l'injection de dépendances dans les controllers soit avec ZendDi ou par utilisation de la ServiceManager.
  5. configurer le déploiement automatique en faisant de l'ancien phing les scripts fonctionnent avec la nouvelle structure de répertoire.
  6. migrer les vues (y compris les helpers) et les formulaires vers ZF2.
  7. migrer les modèles (de Zend_Db à ZF2 ZendDb ou à Doctrine).
  8. migrer autres composants ZF1 un à un (Traduire, Locale, De La Mémoire Cache, Les Acl ...).
  9. Refactoring de réadaptation et de vacances.

cependant, j'aurai une application workin après chaque étape seulement si certains composants ZF2 fonctionnent avec des composants ZF1. Je n'ai aucune idée s'il est par exemple possible d'utiliser des vues ZF1 (et des assistants de vue) avec des contrôleurs ZF2.

25
demandé sur aimfeld 2012-11-16 14:03:59

4 réponses

Migration de Zend Framework 1

ce guide est destiné à fournir des outils et des stratégies pour la migration de Zend Framework 1 à Zend Framework 2. Il n'y a pas de solution unique qui fonctionnera pour chaque projet, ni d'outils pour automatiser le processus.

Dans ce guide, nous allons couvrir les éléments suivants:

  1. Outils pour namespacing votre code.
  2. outils pour consommer Zend Framework 2 dans votre Zend Framework 1 application.
  3. stratégies pour exécuter Zend Framework 2 et Zend Framework 1 en parallèle.
  4. stratégies pour rendre votre code plus facile à migrer, en se concentrant principalement sur la séparation nette de votre logique de domaine et de la couche MVC.
  5. stratégies de migration de la couche MVC.
  6. stratégies de migration de votre domaine couche.

http://framework.zend.com/manual/2.1/en/migration/overview.html

8
répondu electblake 2013-06-26 19:50:12

quelque part, il a été écrit qu'il sera facile à utiliser avec une couche intermédiaire, mais je n'ai jamais vu de liens ou quoi que ce soit dans la bibliothèque qui lui ressemble de loin.

maintenant, la seule chose et les dernières informations que vous pouvez trouver est dans la page D'aperçu de la documentation. C'est ceci:

Note ZF2 n'est pas rétrocompatible avec ZF1, en raison des nouvelles fonctionnalités de PHP 5.3+ implémentées par le framework, et en raison des réécritures majeures de nombreux composant.

Je ne m'attendais pas à ce qu'il soit compatible à l'envers, mais l'énoncé clé ici je crois est le grands réécrit de nombreux composants.

j'ai commencé un nouveau projet avec ZF2 il y a quelques mois où je voulais seulement la bibliothèque; donc pas de MVC qui devrait être facile, non? Jusqu'à présent, c'était un cauchemar parce que plus rien n'est pareil. En plus de quelques noms de classes ou de structures familières, tout le cadre a été entièrement réécrit. à partir de la base.

les choses que j'aimais, que j'utilisais beaucoup et que je connaissais par cœur, comme les formulaires, les cache ou les sessions, sont complètement différentes. Pour mon projet, il m'a coûté beaucoup de temps avec aucun avantage. L'un des principaux objectifs de ZF2 était, je pense, de revoir la documentation, qui est, à ce jour, bien pire que la précédente.

pour mon autre ZF1 existant.x projects Je ne vois pas comment gérer une mise à niveau sauf pour réécrire complètement l'application.

8
répondu Adrian World 2012-11-16 17:29:39

Zend Framework 2 FAQ:

j'ai une application construite avec Zend Framework 1 – est-ce que je pourrai la migrer vers la nouvelle version?

Absolument. Une partie importante de Zend Framework 2 est la couche de migration qui permettra au code ZF 1 de fonctionner sur le nouveau moteur ZF 2, qui sera disponible à l'avenir. Avec lui, vous serez en mesure d'ajouter un nouveau code ZF 2, et de modifier le code existant, à un contrôle rythme.

cependant, à ce stade, je n'ai pas entendu parler d'une couche de migration réelle. Nous ne pouvons qu'espérer qu'il y en aura un, mais à ce stade, j'ai des doutes.

2
répondu Thomas Albright 2013-02-28 23:41:25

nous avons migré une grande application de Zend Framework 1 vers Zend Framework 2 au cours de la dernière année. Nous avons commencé avec des choses simples comme l'Espace-nom, et nous nous sommes lentement introduits dans les différentes composantes de la bibliothèque. Finalement, nous avons fini par éditer Zend_LayoutZend\Filter,Zend_FormZend\Filter et Zend\Json,Zend_NavigationZend\Permissions\Acl, etc. Cela nous a permis d'éliminer presque tous les composants ZF1 à l'exception de la structure d'application ZF1 qui comprend quatre classes Zend_Application,Zend_Config,Zend_Controller et Zend_Layout. La dernière pièce du puzzle est la mise en œuvre de Zend\Mvc\Application et Zend\View, le reste est ZF2-ready.

plus récemment, nous avons créé une sorte de proxy pour accrocher dans Zend\Mvc\Application et les modules ZF2 de ZF1. Cela a été extrêmement utile. J'ai détaillé les étapes à http://webjawns.com/2013/11/migrating-to-zf2-integrating-composer-and-doctrineormmodule/.

En résumé...

  • Convertissez les préfixes en espaces de noms (Model_Model\,Application_ControllerApplication\Controller, etc.)
  • remplacer les composants non MVC par des homologues ZF2 incluant autoloader
  • créer une structure d'application ZF2 et des crochets pour commencer à utiliser les modules ZF2
  • Déplacer les contrôleurs et les vues (encore à travailler un plan de celui-ci)
1
répondu webjawns.com 2013-11-11 17:38:34