Ver Mensaje Individual
  #150 (permalink)  
Antiguo 07/11/2012, 23:27
rodrigo_00
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Zend Framework 2

Cita:
Iniciado por pablofmorales Ver Mensaje
Los unicos conceptos buenos que tiene estan sacados de Symfony. DI, EventManager, Modules (Bundles), y algunas cosas mas.
Symfony no invento los conceptos de DI ni de EventManager, son patrones usados en muchos lenguajes que ahora se pusieron de moda en PHP... el concepto de modulos es igual a lo que hace años existe en drupal y joomla, con eso te digo todo :P

Cita:
Iniciado por pablofmorales Ver Mensaje
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.
Me gustaria ver dos modulos/bundles que hagan lo mismo y ver si realmente la diferencia de codigo es tanta, y si la difrencia entre el array PHP y el YAML es notoria. Ojo lo digo bien eh, no use nunca symfony pero por lo que vi en el quickstart tambien hay unos YAML's "bastante grandes". Si es un punto flojo que solo acepte arrays PHP como configuracion, habria que ver si es posible hacer que acepte algun otro formato, aunque igual no es un punto que a mi particularmente me parezca muy importante, la configuracion la toco una vez y ahi queda...


Cita:
Iniciado por pablofmorales Ver Mensaje
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',
        ),
    ),
); 
Comparando dos routes iguales...

Código:
route1:
    pattern: /foo
    defaults: { controller: 'MyController::fooAction' }

'route1' => array(
                'type'    => 'literal',
                'options' => array(
                    'route'    => '/foo',
                    'defaults' => array(
                        'controller' => 'Album\Controller\Album',
                        'action'     => 'index',
                    ),
                )
Es verdad que ocupa algunas lineas mas, se podria marcar como un punto a mejorar, pero no me parece determinante en la eleccion final de un framework vs otro, configurar esta route tampoco es un gran problema


Cita:
Iniciado por pablofmorales Ver Mensaje
Ni hablar que si este modulo crece este archivo es inmanejable.
De nuevo, quisiera ver dos modulos/bundles que hagan lo mismo y comparar sus archivos de configuracion para llegar a esta conclusion (me voy a poner con symfony mas en serio para poder probarlo por mi mismo :) )


Cita:
Iniciado por pablofmorales Ver Mensaje
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
No entiendo bien a que otros te referis, pero veo bastante simple crear un servicio restful, por lo menos comparado con ZF1 este enfoque me gusta mas.


Cita:
Iniciado por pablofmorales Ver Mensaje
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.
El uso de annotations es opcional, y creo que symfony tambien las usa en varios lugares

Bueno obviamente que cada uno puede tener su opinion y gustarle/no gustarle como estan siendo algunas cosas, de mi lado prefiero ZF por costumbre simplemente y estoy conforme con ZF2, aunque confio en que va a seguir mejorando en las proximas mini releases, aun asi siempre le tuve ganas a symfony (que dicho sea de paso se integra muy bien con ZF2) asi que voy a ponerme a hacer algunas cosas que tengo pendientes y de paso lo voy empezando a manejar