needs_environment lorem functions extension php symfony

php - lorem - Obtenga el entorno Symfony2 en la extensión del paquete



twig humanize filter (2)

Normalmente, al cargar sus servicios, su prototipo de método debe ser

public function load(array $configs, ContainerBuilder $container).

entonces puedes acceder a tu entorno haciendo un

$env = $container->getParameter("kernel.environment")

y luego prueba $ env para ver en qué tipo de entorno te encuentras.

Algo como

if ("dev" == $env) { $loader = new Loader/YamlFileLoader($container, new FileLocator(__DIR__.''/../Resources/config'')); $loader->load(''devServices.yml''); } ...

¡Espero que esto ayude!

En mi extensión de paquete Symfony2 mi services.yml se está cargando

$loader = new Loader/YamlFileLoader($container, new FileLocator(__DIR__ . ''/../Resources/config'')); $loader->load(''services.yml'');

Sin embargo, quiero cargar diferentes configuraciones de servicios por entorno (p. Ej .: una diferente para las pruebas).

La mayoría de los ejemplos que he encontrado para obtener el entorno actual es para acceder dentro de los Controladores (p. Ej .: $this->get(''kernel'')->getEnvironment() ); sin embargo, el acceso basado en Controller no es posible en Extensions.

Según la extensión Twig - entorno symfony2, el entorno puede ser inyector constructor, sin embargo, no estoy seguro de cómo Symfony registra / crea la extensión de paquete, por lo que no estoy seguro de cómo inyectar el entorno (las únicas referencias que encuentro vía grep están en el caché archivos, que no es demasiado útil).

¿Cómo puedo especificar un archivo YAML de diferentes servicios para cargar por env en la configuración, o al menos averiguar el entorno para que pueda codificar mi clase de Extensión para cargar el archivo correcto?


echo $this->container->get(‘kernel’)->getEnvironment();

en la última versión (2.5)