Estoy intentando crear un servicio simple para representar varios tipos de páginas. concepto básico es tener algo como:Patrón de estrategia en Symfony2
$somePageType = new PageType(...);
$this->get('page.service')->render($somePagetype);
... que se ha diseñado como Strategy pattern. Los tipos de página implementarían la interfaz con el método render
y lo llamarían page.service
. El problema es que me gustaría usar Doctrine en las clases de tipo de página. ¿Cuáles son mis opciones aquí? Me gustaría evitar crear un servicio para cada una de estas clases. ¿Es eso posible? ¿Es posible hacerlos conscientes de los contenedores sin ser servicios? Posiblemente, en el futuro, algún tipo de página podría necesitar algo más que solo Doctrine, así que también debo tenerlo en cuenta.
Eso no es bueno para pasar el contenedor. Si su objeto requiere doctrina, debe requerirlo agregando un parámetro en constructor para doctrine object. – meze
@meze por supuesto, pero ¿y si cada estrategia tiene dependencias diferentes? Esta sería la única manera. Sin embargo, definiría personalmente todas las estrategias como servicios en realidad. – gilden
y cómo probarías tus estrategias? reutilizar en otro proyecto sin Symfony? – meze