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. Diferencias con Zend Framework 2

Para los lectores que han experimentado con Zend Framework 2 daremos en esta sección información sobre lo que ha cambiado en Zend Framework 3.

Abajo presentamos las principales diferencias técnicas entre ZF2 y ZF3:

1.12.1. Retrocompatibilidad

ZF3 es una versión evolutiva así que la retrocompatibilidad se preserva en la mayoría de los caso. Sin embargo, algunos trabajos de migración tienen que hacerse si usamos ServiceLocatorAwareInterface a lo largo del código, lo que es probable. En ZF3, esta interfaz se ha removido y ahora todas las dependencias se deben inyectar a través de fábricas. Así, tendremos que crear fábricas para la mayoría de los controladores, servicios, ayudantes de vista y complementos de controlador.

1.12.2. Componentes

En ZF2 los componentes estaban guardados en un solo repositorio GIT. En ZF3 los componentes están guardados en multiples repositorios GIT, un repositorio por cada componente (por ejemplo, zendframework/zend-mvc, zendframework/zend-servicemanager, zendframework/zend-form, etc). Esto permite desarrollar y publicar componentes independientementes uno de otro.

Los componentes son más fáciles de desacoplar que antes y tienen un mínimo de dependencias entre ellos. El componente Zend\Mvc se ha divido en varios componentes. Por ejemplo, las funcionalidades para el enrutamiento se han separado y colocado en el nuevo componente Zend\Router.

Ahora se recomienda especificar las dependencias individualmente en el archivo composer.json, aunque aún es posible depender del paquete zendframework/zendframework que es un metapaquete que instala todos los componentes disponibles.

1.12.3. Instalador de Componentes

En ZF3 un complemente especial de Composer llamado component installer se introdujo. Este permite instalar componentes como módulos de ZF. Además, inyecta información sobre los componentes dentro del archivo de configuración de la aplicación.

1.12.4. Rendimiento del ServiceManager y del EventManager

Los desarrolladores de ZF3 hicieron un gran trabajo mejorando el rendimiento de los componentes Zend\ServiceManager y Zend\EventManager. Ellos ahora son varias veces más rápidos que antes. La desventaja es que tenemos que hacer un trabajo de migración para poder usar las nuevas funcionalidades. Ahora, en los nombre de los controladores y los servicios se recomienda utilizar la característica de PHP 5.5 llamada ::class. Por ejemplo, si antes registramos nuestro controlador como Application\Controller\Index, ahora lo registraremos como IndexController::class. Si antes registrábamos los nombres de los servicios como queríamos ahora se recomienda hacerlo usando ServiceClassName::class. Podemos leer la documentación del componente Mvc para información adicional.

1.12.5. PSR-4

En ZF2 la estructura de carpetas recomendada fue PSR-0, mientras que en ZF3 es PSR-4. Esto requiere algunos (pequeños) trabajos de migración.

1.12.6. Middleware

Zend cree que el futuro de PHP está en ser un «middleware». «Middleware es, dicho con simplicidad, código ubicado entre una petición HTTP entrate y una respuesta HTTP saliente». Ahora podemos registrar un «middleware» que escuche eventos en una aplicación MVC.

1.12.7. Enfoque sobre la documentación

Ahora cada componente en su repositorio contiene su propia documentación. La documentación esta ahora en formato Markdown y tiene mejor diseño.


Top