https://twitter.com/manuel_j555
https://github.com/manuelj555
http://manuelj555.github.io/
Manuel Aguirre - Venezuela
Durante la lectura de la siguiente presentación se visualizarán
en cada pantalla una serie de imágenes, que a primera vista no
tienen un orden especifico.
Lo que se pretende mostrar es el código generado en caché por el
componente de inyección de dependencias de symfony, a partir de
las definiciones escritas en archivos YAML.
Prácticamente todo el código mostrado en esta presentación es
tomado de la Caché del contenedor.
La idea es mostrar la potencia del componente y de como podemos
tener aplicaciones eficientes gracias al uso del mismo.
Parámetros del contenedor
Contienen las Instancias creadas
Ámbitos de los servicios en la Aplicación
El propio contenedor es un servicio
Alias de algunos servicios
MethodMap: id de servicios apuntan
a métodos del contenedor.
Cada servicio es un método protegido.
Los parámetros pasan a valores estáticos
calls: array de métodos de la clase que se
llamarán al instanciar el servicio.
La primera posición de cada array es un string con el nombre del método
La segunda posición de cada array es otro array con los argumentos que
se pasarán a cada método.
call_user_func: Invoca a una función o método.
Método de la clase Debugbar, lo usaremos para obtener el JavascriptRenderer
@= (ExpressionEngine) permite escribir
código que luego es compilado a php.
@= (ExpressionEngine) permite escribir
código que luego es compilado a php.
Instancia local
Como permitir la extensión del debugbar con nuevos colectores sin
modificar el propio servicio?
Etiquetamos los servicios (colectores) con el tag debugbar.collector
Buscamos los servicios con la Etiqueta debugbar.collector
Obtenemos la definición del servicio debugbar
Por cada servicio etiquetado con el nombre debugbar.collector agregamos una llamada al
método addCollector de la clase Debugbar y le pasamos el servicio correspondiente.
Al cachearse el contenedor, nos genera las llamadas a
addCollector por cada servicio etiquetado
Cada colector etiquetado
• http://manuelj555.github.io/2014/02/27/inyeccion-de-dependencias.html
• http://gitnacho.github.io/symfony-docs-es/
• http://symfony.com/doc/current/index.html
• http://symfony.es/
• http://yosymfony.com/

Cache del Contenedor de Symfony