Cómo definir la configuración de la sesión en Symfony

Cómo definir la configuración de la sesión en Symfony

Ante todo, una aclaración: PHP maneja las sesiones a través de cookies (Antiguamente también se podía propagar el ID de sesión vía URL, aunque es una práctica muy poco segura y, sinceramente, hace mucho que no lo veo). Bien, ahora... ¿qué cosas podrías querer cambiar de la configuración de la sesión? Varias. El nombre de la cookie El tiempo de duración El lugar donde se almacena la información del lado del servidor Sobre la segunda y la tercera, acá tenés un ejemplo de por qué querrías hacerlo :) Respecto de la primera, más que nada se trata de un tema de seguridad. Fijate esta captura de pantalla de la consola del navegador: El nombre PHPSESSID es el nombre por defecto que se le asigna a la cookie de sesión de una…
Read More

Cómo funciona el conversor de parámetros de Symfony

Cada vez que conozco más del framework Symfony, más me gusta :). Esto que te voy a mostrar a continuación me pareció un acto de magia cuando me lo crucé por primera vez: el conversor de parámetros. En la mayoría de los Controllers (especialmente cuando se trata de CRUDs), se recibirá algún parámetro que será la clave para encontrar el objeto sobre el que se quiere realizar la operación, por ejemplo: public function showAction(Request $request) { $client = $this->getDoctrine()->getRepository('AppBundle:Client')->find($request->getParameter('id'); if ( $client ) { ... } else { // 404 } } Es muy común ver código de este tipo. De hecho, si lo miramos desde un poco lejos notaremos que hay una estructura en común en estas operaciones: Buscar el objeto Si se encontró, procesar normalmente Si no se…
Read More
Cómo debuggear un comando Symfony usando PhpStorm

Cómo debuggear un comando Symfony usando PhpStorm

En este post voy a mostrarte un caso algo particular de cómo debuggear un script que corre por línea de comandos. Se trata de debuggear un script hecho con el framework Symfony. La particularidad que tiene este escenario es que el código que escibiste (y que querés verificar), no es un archivo php común, si no que es una claseque extiende de ContainerAwareCommand, con lo cual, no es posible invocarla en forma directa. La ejecución de este comando requiere del paso por el script bin/console. Ahora, si te fijás su contenido notarás que no es más que un script php, con lo cual, podría ser debuggeado usando la configuración "estándar" de PhpStorm para estos casos... La idea en definitiva es simple, cuando ejecutás algo como: php bin/console miApp:miComando El script php que…
Read More
Los bundles mínimos para un proyecto empresarial Symfony

Los bundles mínimos para un proyecto empresarial Symfony

Ultimamente me estuve entusiasmando bastante con un par de proyectos en los que estamos trabajando en Leeway (obviamente codeados en mi framework favorito Symfony :)) y me pareció interesante compartir algo de la experiencia. Symfony por sí mismo es un gran Framework cuando se trata de armar un sólido Back-End, pero la parte de front... es un poco floja para mi gusto. Afortunadamente, el diseño modular que tiene ha permitido que mucha gente colabore con excelentes bundles, entre ellos: MopaBootstrapBundle Lograr un frontend responsive sin saber casi nada de css es, en mi opinión, un sueño hecho realidad. Este bundle permite apalancarse en Twitter Bootstrap para lograr una UI muy profesional (y estándar). Ejemplo de una pantalla lograda: Más información acá AsseticBundle La librería Assetic provee una forma muy buena de manejar los recursos estáticos…
Read More

Un ejemplo de máquina virtual lista para PHP+Symfony2+XDebug

Charlando con algunos amigos desarrolladores php surgió un tema que les estaba resultando complicado, así que decidí poner mi pequeño granito de arena (para ellos y para otros que tal vez estén pasando por lo mismo). Ya habíamos hablado del por qué usar una máquina virtual para proyectos PHP. Ya estaba claro que usar un framework es más conveniente que no usarlo (independientemente de cuál fuera) y les había comentado sobre mis herramientas favoritas de automatización (Ansible y Vagrant). Todos estábamos de acuerdo "en la teoría", pero a la hora de pasar a la práctica se veían algo frustrados por no poder lograr tener una máquina virtual que fuese fácil de usar y que soportara, entre otras cosas, el uso de XDebug. Lo que te voy a mostrar a continuación son los archivos…
Read More