deSymfony 2013

Por qué Symfony es tan rápido

Carlos Granados  · 

Presentación

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

buenas tardes muchas gracias por estar aquí para ver esta charla que ya sé que ahora después de comer lo que apetece es irse al césped a echar una siestecita así que os agradezco que estéis aquí a ver mi charla y dar las gracias a los patrocinadores que hacen

posible que estemos aquí todos disfrutando de estas magníficas charlas y la comunidad de juntarnos todos y antes que nada me gustaría presentarme me llamo carlos granados soy de madrid pero vivo desde hace unos cuantos años en pontevedra y allí se vive muy

bien soy sinfonía y satisface developer hasta ayer éramos sólo 49 en todo el mundo no se aprobarían ayer hubo alguien que hizo el examen ayer por aquí debe salir los resultados joder qué putada el año pasado lo dijeron el claro estaba bien está claro se ha

ido entonces bueno tenemos 50 y pocos que no somos muchos el mundo y yo llevo muchísimo tiempo desarrollando software gran parte de ese tiempo lo he empleado en desarrollar videojuegos arriba tenéis algunas muestras de los juegos desarrollado desde juegos

para ordenadores personales juegos para máquinas recreativas juegos para móviles por ejemplo el mítico sinfín seguro que más de uno lo recordáis y lo conocéis el world rally fue ese el juego de máquina recreativa más vendido en europa en año 93 y el juego

de fernando alonso es el juego móvil más el más vendido en el año 2005 aquí en españa ahora con los juegos de vuestra mayor para eso pero me sigo dedicando a la informática y ahora me dedico a el desarrollo de aplicaciones móviles y aplicaciones para web aquí

tenéis alguna de las aplicaciones móviles que está desarrollando por ejemplo está trabajando en la aplicación para el tiempo de mario picazo también la aplicación super trouper que lo mejor la conocéis algunos es un comparador de precios y en cuanto a proyectos

web pues este por ejemplo es un proyecto que estamos arrollando se llama clipping book que sirve para hacer libros a partir de cosas encuentras en internet aprovecho para decir que en este proyecto en clipping book que estamos buscando un desarrollador back-end

que sea un máquina symphony 2 para trabajar en modo teletrabajo así que si alguno os interesa luego me contacta es que os puede llegar a interesar entonces vamos a empezar con la charla la charla se llama porque symphony es tan rápido porque symphony va como

una bala aunque yo lo estoy pensando que en realidad la charla se tenía haber llamado cómo es posible que symphony no sea una tartana lo que pasa que claro como título pues era bastante peor pero bueno me voy a explicar nosotros hacemos una petición a un servidor

que tiene symphony y entonces qué es lo que ocurre vamos a empezar encontrando primero llega la petición leemos la petición y se crea un kernel hacemos un book del kernel y ya está ahora tenemos que leer la configuración de todos los banderes cada uno de su

panel tiene su configuración cita la leemos construimos y cargamos el contenedor de dependencias que es donde tenemos todos los servicios que va a inyectar a la aplicación etcétera aplicamos la configuración de seguridad ahora ya hemos visto la ruta que es

una ruta hello demo pues ahora vamos a ver cuál de todas las rutas definidas tengo que aplicar tengo que leer todas las rutas que están definidas en la aplicación encuentro cuál es la ruta que corresponde a esta petición que tengo con eso elijo el controlador

y lo llamo para que empiece a funcionar el controlador y te voy a hacer mis cositas una de las cosas que voy a hacer es acceder a la base de datos entonces la base de dato normalmente utilizamos uno de rm tengo que leer la configuración de todas las entidades

que están en el rm me conecto a la base de datos accedo a la base de datos leo los datos que me interesen para mostrar los convierte en entidades para poder trabajar con ellos de forma como el symphony y ya tengo todos los datos necesarios para servir lo que

quiero mostrar una última cosa que puedo necesitar es en mi controlador pero en mi plantilla pues lo mejor quiero poner otros enlaces a otras páginas quiero poner un enlace un formulario con lo cual necesito también construir rutas es decir bueno pues yo ya

tengo ahora quiero mostrar un redirigir a la página a la ruta blogging entonces tengo que saber esa url a que consta que constituye ahora digo venga pues ya voy a pintar una plantilla del contrario píntame esta plantilla tengo que encontrar cuál es la plantilla

que tengo que usar una vez que ha encontrado la tengo que compilar una vez que la compiladora ejecutó eso me devuelve un resultado que es un destino nuevamente lo convierto en una respuesta la respuesta se la mandó al cliente y durante todas estas actividades

encima cada clase que he tenido que visitar tengo encontrarla dónde está la autora de esta clase han estado tratando el kernel dame el container dame el control estatal y todas estas clases vengan ahora venga a cargar esta mañana a ricard hacía una estimación

de que todo este proceso pues estaba haciendo como unos 5.000 llamadas de php no sé cuántas clases está cargando exactamente hemos intenta encontrar ese dato así rápidamente no hemos encontrado pero yo estoy seguro de que serán más de 100 clases diferentes

las que cargas entre este proceso entonces yo veo todo esto y a mí lo que me extraña es que cuando una petición lo que si fuere me digan o sea esto normal que dijera bueno váyase a tomar un café y luego ya le doy los resultados que me lo voy a pensar un rato

largo afortunadamente todas estas actividades no las tenemos que hacer todo el rato se estuviera que hacer symphony todo el rato todas estas actividades pasaría de hecho lo podéis ver cuando habéis instalar la aplicación o acabáis de cargarla de nuevo la primera

respuesta tarda muchísimo no sé si vosotros pasa pero a mí la primera respuesta de todas aveces conectará a 10 segundos en devolver una respuesta porque porque tiene que hacer todo esto y generarlo symphony muchas de estas actividades que hemos descrito antes

las está cacheando cuando estamos cuando decimos cachar qué es lo que estamos haciendo está cogiendo una actividad que es complicada la está ejecutando y la está guardando en un fichero php normalmente de una forma que luego es mucho más fácil de reutilizar

lo que necesita hacer es cargar ese fichero y ejecutarlo vale entonces de todas estas actividad que hemos puesto aquí todas estas que están en verde tienen alguna actividad que hace symphony de forma que lo que hace es caché a esta información la trata a una

primera vez carga las clases carga lo que sea carga la configuración de la base de datos carga el contenido dependencias y ya una vez que lo he procesado y lo tengo hecho lo guardo y lo tengo lista para la próxima petición que me llegue lo único que hacer

es cargarlo mirar es que estoy mirando el teléfono no es que sea un adicto del whatsapp es que lo utilizo para pasar las diapositivas vale no estamos hablando del caché http el caché http que es el caché que está antes de que llegue a nuestro servidor lo ideal

para tener un servidor que funcione bien es que la petición no llegue nunca a nuestro servidor que la mayoría de peticiones que podamos las sirva el propio caché la sirva de los datos que tiene guardado bien lo tenemos en un barniz en un propio caché que viene

con symphony lo que sea el caché del cliente que también está funcionando muchas de estas situaciones entonces no estamos hablando de eso somos hablando de cuando ya realmente ha llegado una petición a nuestro servidor tenemos que servirla y tenemos que hacerlo

de la forma más rápida posible estamos hablando de lo que hemos llamado el caché de aplicación el caché de aplicación fundamentalmente son todos esos cientos de ficheros que guardan sinfonía el directorio app caché lo habré visto muchas veces y está lleno

de cosas que muchos nosotros no sabemos ni qué son ni quién los ha creado ni cómo llegaron hasta ahí ni para qué sirven entonces el contenido esta charla básicamente se trata de explicar cómo llegaron estos ficheros ahí que los crea como los utiliza symphony

y en algunos casos dar algunos truquitos de cómo podemos mejorar todavía esta funcionalidad antes de empezar a meternos con el contenido de la caché me gustaría contar una cosa que imagino que la mayoría de vosotros ya lo sabréis pero quiero insistir en ello

porque es importante que es la diferencia entre entornos y el tema de depuración nosotros en nuestro controlador frontal que normalmente en symphony tenemos dos el app hp y el lab de php hay una línea que es la que llama esto que es la que construye el kernel

construye el kernel y le pasamos los parámetros el primer parámetro es el nombre del entorno el nombre de entorno qué es eso el nombre de la configuración que vamos a usar para correr symphony y el segundo parámetro es si es un entorno de depuración o no vale

entonces el entorno que es el para lo que sirve el entorno realmente lo único que le estamos diciendo a symphony es que fichero de configuración vamos a usar normalmente se acepta que en un entorno de producción en torno a prot utilizamos una configuración

que es de producción en un entorno de utilizamos la configuración que es de eso pero symphony no refuerza esto de ninguna manera no te obliga a que en tu entorno de producción tengas cosas optimizadas y en tu entorno de desarrollo tengas cosas menos optimizadas

es lo que se suele hacer pero digamos que sinfonía es agnóstico en este sentido yo soy un entorno en mi configuración de producción empiezo a ponerle el profiler que todo vaya no sé qué le puedo poner toda una configuración totalmente de eso y sin felices

bueno pues venga adelante a mí me da igual porque lo único que estoy diciendo es carga me está con éste fichó de configuración que es lo que yo tengo vale otra cosa que se utiliza para saber qué te dice el entorno es que es un directorio de app caché que vamos

[ ... ]

Nota: se han omitido las otras 4.922 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.