Actualiza tus layouts para Symfony 1.1

Cuando se publique la esperadísima versión 1.1 de Symfony, un script automático actualizará las aplicaciones creadas con Symfony 1.0 para que sean compatibles con la nueva versión del framework. Si viviste la transición de la versión 0.7 a la versión 1.0, ya sabes que este script es completamente fiable y realiza de forma correcta más del 95% de los cambios necesarios. Sin embargo, algunos cambios que no son automatizables se tendrán que realizar a mano.

Una de las modificaciones manuales más importantes está relacionada con los layouts y las variables. En Symfony 1.0, cuando estableces una variable en la acción, esa variable está disponible tanto en la plantilla como en el layout. Lo malo de utilizar una variable en un layout es que todas las acciones que utilicen ese layout tienen que definir la variable. Por este motivo, desde la versión 1.1 de Symfony las variables de las acciones sólo estarán disponibles en las plantillas y no en los layouts.

Si utilizas variables en los layouts, tu código será similar a:

  // En la acción
  class ...Actions extends sfActions
  {
    public function execute...()
    {
      $this->titulo = 'lo que sea';
    }
  }

  // En el layout
  ...
  <head>
    <title><?php echo $titulo ?></title>
  ...

En Symfony 1.1, la forma correcta de escribir el código anterior hace uso de slots, tal y como se muestra en el siguiente código:

  // En la acción
  class ...Actions extends sfActions
  {
    public function execute...()
    {
      $this->getResponse()->setSlot('titulo', 'lo que sea');
    }
  }

  // En la plantilla
  <?php slot('titulo', 'valor por defecto si no se ha establecido en la acción') ?>

  // En el layout
  ...
  <head>
    <title><?php echo get_slot('titulo') ?></title>
  ...

Recuerda que este cambio lo debes realizar en todos los layouts que utilicen variables establecidas en la acción.

Gracias a esta modificación, los autores de Symfony aseguran que la caché de las acciones sea diez veces más rápida que la de Symfony 1.0.

Fuente: Upgrade your layout (for symfony >= 1.1 beta3)

Comentarios

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

20 de abril de 2008

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.