Colegas symfoneros ismael y cristian muchas gracias por sus opiniones, el objetivo del post era precisamente esto conocer los puntos de vista de otros compañeros y las razones expuestas es lo que buscaba, buscare otra forma mas acorde con los objetivos de symfony de hacer lo que busco. Gracias a los dos.
El jun 1, 2012 4:31 p.m., "theUniC" <the...@gmail.com> escribió:Hola Hely,Es una mala práctica pasar todo el contenedor de servicios cómo parámetro o en tu caso acceder a él desde el array de globals, no hay que hacerlo. Y mucho menos hacer que la entidades tengan acceso al mismo, pues se incumplen varios principios SOLID y las dependencias entre componentes (aka servicios), ya sean mandatorias o opcionales, dejan de ser explícitas y se pervierte el patrón. Ello comporta que dejes de tener visibilidad sobre qué es lo que necesita el servicio para poder ejecutarse y te sea imposible hacer unit test sobre el mismo. De hecho la recomendación oficial de Symfony2 al respecto del uso del contenedor de servicios, es evitar acoplar nuestro código con el contenedor (de hecho no hay ningún ejemplo, almenos que haya visto yo, en la documentación de Symfony2 que acople el contenedor de servicios)
http://symfony.com/doc/current/components/dependency_injection/introduction.html#avoiding-your-code-becoming-dependent-on-the-container
En general (y no solo para Symfony2), una capa de servicios consta de varias subcapas: lógica de negocio o capa de servicio (en Symfony2 serían services y repositories, por ese orden) => capa entidades del modelo de dominio (en Symfony2 serían las Entities) => capa de acceso a datos (Doctrine 2 & PDO) => Data source (MySQL, Solr, MongoDB y un largo etc). Además debe cumplirse que un servicio debería poderse ejecutar tanto por CLI, como por el front de la aplicación o por dónde se quiera, por lo que no debe estar ligado a componentes intrínsecos a la request HTTP, a la request de CLI, etc.Adjunto aquí el enlace al patrón Service Layer, inicialmente propuesto por Randy Stafford en el libro de Patterns of Enterprise Application ArquitectureY por supuesto, Symfony2 por su arquitectura, te obliga un poco a no usar truquillos piratillas cómo el de la $GLOBALS['kernel'] y a usar algo más acorde con la OOP que ahora por ahora permite PHP en su actual versión. Esto es muy "phpquatro" !! :)Espero que te sirva!Un saludo!
Christian.
El 1 de junio de 2012 22:08, helysm <hel...@gmail.com> escribió:
>
> Saludos Colegas Symfoneros.
>
> Luego de varias horas de consultas infructuosas en donde buscab...