A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

1.12. Différences avec Zend Framework 2

Pour les lecteurs qui ont travaillé avec Zend Framework 2, cette section vous donnera quelques informations sur ce qui a changé dans la version 3.

Vous trouvererz ci-dessous, les principales différences techniques entre ZF2 et ZF3 :

1.12.1. Rétrocompatibilité

ZF3 est une version évolutive, donc la rétrocompatibilité est préservée dans la plupart des cas.

Cependant, certaines modifications doivent être effectuées pour migrer votre code si vous avez utilisé ServiceLocatorAwareInterface (ce que vous avez probablement fait). Avec ZF3, cette interface a été supprimée et toutes les dépendances doivent maintenant être injectées dans les factories. Ainsi, vous devrez créer des factories pour la plupart de vos contrôleurs, services, aides de vue (view helpers) et plugins de contrôleur.

1.12.2. Composants

Dans ZF2, les composants étaient stockés dans un seul dépot GIT. Avec ZF3, les composants sont stockés dans plusieurs dépots GIT, un dépot par composants (par exemple, zendframework/zend-mvc, zendframework/zend-servicemanager, zendframework/zend-form, etc). Cela permet de développer et déployer les composants indépendamment les uns des autres.

Les composants sont encore plus isolés qu'auparavant et ont des dépendances minimales les uns sur les autres. Le composant Zend\Mvc a été divisé en plusieurs nouveaux composants. Par exemple, les fonctionnalités de routage ont été déplacées vers le nouveau composant Zend\Router.

Il vous est maintenant recommandé de spécifier les noms des composants dont votre application dépend dans le fichier composer.json, bien qu'il soit toujours possible de dépendre du paquet zendframework/zendframework, qui est un méta-paquet installant tous les composants disponibles.

1.12.3. Le Component Installer

Dans ZF3, un plugin spécial Composant appelé component installer a été introduit. Il permet d'installer des composants en tant que modules ZF. En injectant notamment des informations sur le composant dans le fichier de configuration de l'application.

1.12.4. La Performance des ServiceManager et EventManager

Les développeurs ZF3 ont fait un excellent travail en améliorant les performances des composants Zend\ServiceManager et Zend\EventManager. Ils sont bien plus rapides qu'avant. L'inconvénient est que vous devez effectuer un travail de migration pour utiliser ces nouvelles fonctionnalités Les noms des contrôleurs et des services doivent maintenant respecter la fonctionnalité PHP 5.5 appelée ::class. Par exemple, si précédemment vous avez déclaré votre contrôleur en tant que Application\Controller\Index, vous devrez le renommer en IndexController::class. Si précédemment vous nomiez vos services comme vous le souhaitiez, il est maintenant recommandé de le faire en utilisant ServiceClassName::class. Lisez la documentation du composant Mvc pour plus d'informations.

1.12.5. PSR-4

Dans ZF2, la structure des dossiers recommandée était PSR-0, tandis que dans ZF3, il s'agit de PSR-4. Cela nécessite un (petit) travail de migration.

1.12.6. Middleware

Zend croit que l'avenir de PHP est dans le middleware. "Le middleware (ou interlogiciel) est, tout simplement, du code assis (???) entre une requête HTTP entrante et la réponse HTTP sortante." Vous pouvez maintenant enregistrer un listener de middleware dans une application MVC. ?!*%? Si quelqu'un peut proposer une meilleure définition...

1.12.7. Focus sur la documentation

Maintenant, chaque dossier de composants contient sa propre documentation. La documentation est maintenant mieux conçue, elle est au format Markdown.


Top