php - tutorial - symfony español
¿Es Symfony una mejor opción que Zend para una tienda de desarrollo web(10+) porque es un marco de pila completo? (6)
Mi equipo en el trabajo está considerando utilizar un marco para desarrollar sitios web y aplicaciones. Algunas de las personas mayores están convencidas de que debemos usar Zend Framework porque es más fácil seleccionar y elegir las características para que el marco sea liviano.
Sin embargo, me temo que solo están viendo las ventajas técnicas que tendrá un marco liviano. En mi opinión, es mejor tener un marco de pila completo (y yo soy un defensor de Symfony) porque
- También nos proporcionará una forma estándar de trabajar sin escribir documentación nueva.
- Si quisiéramos usar nuevas características, solo tendríamos que leer la documentación para ver cómo se puede usar en lugar de tener que compilarla primero en nuestra configuración de Zend.
No espero que todas mis preguntas sean respondidas por todos, pero esto es lo que estoy buscando en la respuesta:
- ¿Tengo un punto aquí?
- ¿Has estado en una situación similar y cómo manejaste eso?
- ¿Tiene más argumentos que podría utilizar O podría hacer que reconsidere mi propia opinión?
El contexto: trabajo en una pequeña tienda con aproximadamente 10 programadores. Principalmente programamos PHP. Usamos un framework desarrollado en casa muy simple y una librería ORM que están prácticamente indocumentadas y carecen de todo excepto las características más básicas (sin validadores, sin transacciones, sin almacenamiento en caché, sin autenticación)
Creo que la documentación de ZF y la participación de la comunidad es mejor. También me gusta el esquema de nombres, el estándar de codificación y la extensibilidad. ZF también parece tener muchas características nuevas y mejoras en las clases existentes, como un proyecto de código abierto, de muchas personas diferentes que trabajan en sus propios proyectos favoritos.
Realmente no veo cómo Symfony es una ventaja para un grupo de 10 programadores. Claramente, debería poder configurar de forma relativamente rápida una configuración predeterminada para nuevos proyectos, y tener mucha capacidad de ampliación incorporada además de ZF.
Symfony es realmente fácil de usar y puede obtener un sitio completamente funcional con sesiones, almacenamiento en caché, pruebas funcionales y de unidades, implementación automatizada y más en funcionamiento en un período de tiempo muy corto. Solo necesita preocuparse por el código para acceder y mostrar sus datos. Aunque puede que no sea tan liviano como una implementación propia, la cantidad de código que debe mantener será menor.
El ORM Propel / Creole funciona bien, tiene validadores incorporados, etc. y está configurado para ser extensible de manera inmediata.
Al migrar un framework interno a Symfony, pude reutilizar gran cantidad de código de biblioteca simplemente colocándolo en uno de los directorios de lib que Symfony escanea al inicio.
Aunque no lo he usado, hay un puente Zend integrado en Symfony que le permite usar módulos Zend si es necesario.
Espero que ayude.
Tengo experiencia limitada con cualquiera de ellos, pero un buen punto de partida para establecer "estándares" para Zend es seguir sus tutoriales para usar los diferentes módulos, muchos de ellos dan fallas de funcionamiento que funcionan en el 99% de los proyectos.
Yo diría que todo se reduce a lo que necesita: tener flexibilidad, Symfony para un inicio más rápido y estándares pre-desarrollados si su proyecto no tiene necesidades extraordinarias.
¿Cómo ZF no está "lleno"? Parece contener todos los elementos que Symfony tiene, y algo más. Además ZF tiene un enfoque de "elige tu veneno", lo que te permite usar diferentes piezas en diferentes métodos. (Como ejemplo, utilizamos Zend_Config en muchos lugares diferentes, solo para que todos puedan esperar un sistema de configuración razonablemente uniforme, incluso en pequeñas partes de código).
Sin embargo, me temo que solo están viendo las ventajas técnicas que tendrá un marco liviano. En mi opinión, es mejor tener un marco de pila completa (y soy un defensor de Symfony) porque ...
Depende mucho del tipo de aplicación que está creando. Si está construyendo muchas aplicaciones de baja complejidad, principalmente basadas en el contenido, Symfony brillará. Por otro lado, si su aplicación no encaja en el paradigma de objetos desnudos de Symfony (por ejemplo, si es compleja y no se centra exclusivamente en la administración de contenido), puede encontrarlo más un obstáculo que una ayuda.
¿Y por qué no los dos? He usado Symfony desde 2006, he sido un verdadero fanático de Doctrine durante un año, y durante algunos meses, hemos alcanzado muchos pasos en la escala de productividad al integrar los componentes de Zend directamente en nuestras aplicaciones de Symfony.
La verdadera fortaleza de Symfony reside en el desacoplamiento de todo y la fácil extensibilidad del marco. Puedes reemplazar casi todas las capas de todo el conjunto. Simplemente copie / pegue el directorio Zend en / lib /, y agregue este singleton en /config/ProjectConfiguration.class.php:
static public function registerZend()
{
if (self::$zendLoaded)
{
return;
}
sfToolkit::addIncludePath(sfConfig::get(''sf_lib_dir'') . ''/vendor'', ''back'');
require_once(sfConfig::get(''sf_lib_dir'') . ''/vendor/Zend/Loader.php'');
Zend_Loader::registerAutoload();
self::$zendLoaded = true;
}
Y use libremente cualquier componente de Zend que le pueda gustar. Puede que le interese el nuevo tutorial de Jobeet, y especialmente en la parte de búsqueda, que utiliza Zend_Lucene_Search.