Recordando este post quise venir a dar mi feedback de ZF2.
La verdad es que estoy totalmente decepcionado con ZF2, me parecio un desastre.
Los unicos conceptos buenos que tiene estan sacados de Symfony. DI, EventManager, Modules (Bundles), y algunas cosas mas.
El desarrollo de modulos me parecio super tedioso, no solo armar un ABM sino todo el bodoque de archivos y codigo que tenes que escribir para desarrollar una funcionalidad minima, ya empezar que no tiene archivos de configuracion claros. La configuracion son arrays de datos ilegibles. Sino te gusto los archivos ini, o no soportan ciertas funcionalidades, copiate tambien el uso de YML para archivos de configuracion de Symfony, pero no en cambio hay que escribir un arbol interminable de valores en la configuracion de un modulo cuando deberia ser algo mucho mas simple.
Ya solo pensar que para los rewrites tenemos que configurarlos uno por uno, y con varias lineas me parece inaceptable.
En RoR cuando creas un nuevo modulo, en el archivo router.ini solo agregas el nombre del controller y es suficiente, aca bue, dejo un ejemplo sacado de la documentacion
Código PHP:
// module/Album/config/module.config.php:
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
),
),
// The following section is new and should be added to your file
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
Ni hablar que si este modulo crece este archivo es inmanejable.
Otro tema importante es que no soporta facilmente crear un servicio restful, es mas como un hack que algo que Symfony ya maneja naturalmente hace tiempo.
Hasta donde yo recuerdo solo tenemos POST|GET|PUT|DELETE ahora al parecer hay otros
http://framework.zend.com/apidoc/2.0...ontroller.html
Hace un tiempo que con el retraso de ZF2 a una estable estoy usando Symfony 2 y Silex, o los componentes por separado y la verdad no veo porque cambiarme a Zend Framework 2. Lamentablemente me genero demasiadas expectativas y no cumplio.
Como algo personal el tema de los anotation en el codigo para todo como hace Doctine ORM me parece ilegible y molesto, si ademas eso se lo agregan a los formularios y a los modelos, ya es demasiado.