2010-09-13 6 views
11

No estoy seguro de si esto es posible, pero digamos que quieres construir un CMS, pero estás dividido entre 2 marcos porque cada uno tiene algunas características que te gustan. ¿Es posible crear el CMS con ambos framewoks? ¿Este enfoque tiene méritos o dificultades?¿Un CMS en 2 DIFERENTES marcos?

+1

depende de los marcos; ¿En qué dos estás dividido? –

+2

Usando un patrón de MVC y/o ORM desde uno, y el motor de plantillas desde otro, sí, puedo ver que eso está sucediendo. Pero con la excepción de Zend, la mayoría de los marcos no funcionan tan bien juntos/no están hechos de componentes independientes reales. Me inclinaría más a ir con el marco de trabajo _best fit_, y trataré de integrar las características que extraño, posiblemente ofreciéndolo nuevamente al marco de referencia si considero que las características son lo suficientemente interesantes y tuve el tiempo para resolverlo adecuadamente. y documentarlo. – Wrikken

Respuesta

3

¿Es posible crear el CMS con ambos framewoks?

Si bien es posible utilizar componentes del Zend Framework dentro de otros marcos/CMS - esto puede ser el caso con otras bibliotecas de componentes también, pero de la más modular que sé Zend - Por lo general no es una buena idea para mezclar dos Frameworks completos.

Muchas funciones centrales como estructuras MVC, enrutamiento de URL, capa de base de datos, prueba de unidades, gestión de errores, etc., por naturaleza no pueden ser atendidas por dos marcos a la vez sin fricción masiva. Además, es probable que tenga problemas cuando uno de los marcos necesita ser actualizado.

Recomendaría elegir el marco que cubra la mayor parte de lo que necesita, e intente agregar las características que faltan mediante complementos o modificaciones propias.

7

Hablando estrictamente sobre Zend Framework (ZF), diría que sí. Los componentes ZF están escritos para ser tan independientes de otros componentes como sea posible. Diría que no sería muy difícil (puede ser bastante común) integrar bibliotecas de ZF en otros marcos como Cake, Symfony o Codeigniter.

1

Sería realmente dependerá de qué cosas que le gustaban de los dos ...

Zend Frameowrk es más como una biblioteca, para que pueda escoger y elegir los componentes de la misma. Symfony también tiene algunos componentes reutilizables que puedes usar.

Realmente, usted puede hacer cualquier cosa ... solo depende de cuánto trabajo desea hacer y qué tan dispuesto está a modificar el código de la estructura. Nota: la mayoría de los otros frameworks PHP no son tan flexibles como Zend Framework (el próximo probablemente sea Symfony).

Esto suena muy complicado, así que desaconsejarlo, a menos que lo use de la manera que he descrito anteriormente. Es fácil extraer componentes ZF o Symfony en otros marcos, pero no al revés.

Espero que esto ayude.

2

Su pregunta es demasiado abstracta. Por ejemplo, Zend Framework es más una biblioteca de funcionalidades específicas listas para ser incluidas en su base de código y luego un entorno de desarrollo cerrado como, por ejemplo, el framework Symfony.

Gracias a que puede ser ZF simplemente incluido en su código base (and Symfony too).

Symfony Framework en comparación con esta solución está cerrada, dependiendo del entorno del servidor frontal, por lo que no puede usarlo como el esclavo de otro constructor.

1

La capacidad de compilación de la mayoría de los marcos es tal que es más probable que le dé todas las desventajas de ambos, al mismo tiempo que elimina la mayoría de las ventajas individuales de ambos.

1

Me parece que un framework servirá como núcleo: bootstrapping, MVC stack, routing, mientras que el otro se usará para obtener funcionalidades específicas, como clases de formularios o filtrado o interacción con servicios web, etc. .

Tanto como prefiero Zend Framework para el núcleo - y casi todo lo demás - su arquitectura use-at-will argumenta para hacer del otro framework el núcleo y extraer componentes ZF donde los necesite.

Como señala @Adrian, es fácil incorporar los componentes ZF a un proyecto construido principalmente en otro marco, ya que ZF está diseñado teniendo en cuenta esa flexibilidad. Otros marcos son menos complacientes a este respecto.

1

Puedes hacerlo. La mayoría de los frameworks modernos (Zend, Symfony, flow) son capaces de usar partes de otros frameworks. Symfony 2 usa Zend Logger, flow3 usa sfYaml ... Es posible intercambiar algunos componentes.

Pero, en mi opinión, debe atenerse a un marco como núcleo, y utilizar en segundo lugar solo subsistemas relativamente aislados. Los patrones de diseño de adaptadores y fachadas pueden ayudarlo a mezclarlos; algunos componentes/clases exigen cierta envoltura antes de su uso en un entorno no nativo.

Para la lectura adicional: http://www.symfony-project.org/book/1_2/17-Extending-Symfony#chapter_17_integrating_with_other_framework_s_components

1

Por supuesto, es posible y no veo algo mal con él. Por ejemplo, usé CakePHP y Zend en un proyecto relativamente grande que era como un cms. CakePHP para el núcleo (Enrutamiento, MVC) y Zend para algunos "Módulos". Principalmente para PDF, correo electrónico (smtp), FTP y algunos otros en los que CakePHP no era tan bueno. Con Cake fue bastante fácil usar los componentes de ZF y no me sentí nada hacky.

De hecho, ZF fue escrito para ser lo más independiente posible, de modo que pueda usar cualquier componente en cualquier momento en cualquier lugar. Sin embargo, no funcionaría al revés (usando ZF como núcleo y componentes de Cake). Sin duda es posible, pero un dolor real sin beneficios. Así que ZF podría usarse de manera muy útil dentro de casi cualquier otro marco y nada estaría mal con eso, imho.