sfPJS, RJS para Symfony

sfPJSPlugin es uno de los últimos plugins creados para Symfony. Afortunadamente, lo peor del plugin es su impronunciable nombre. Los responsables de Symfony siempre han declarado que copian las mejores ideas de cualquier framework existente (Ruby on Rails y Struts por ejemplo) y añaden sus propias ideas.

sfPJS no es más que incorporar el RJS de Ruby on Rails a Symfony. sfPJS permite incluir de forma dinámica el código JavaScript a una plantilla.

En otras palabras, si CSS permite separar el contenido (XHTML) de la presentación (el aspecto de la página que ve el usuario en su navegador), sfPJS permite separar el contenido (XHTML) de su comportamiento (toda la lógica de JavaScript).

La mejor forma de entenderlo es mediante un ejemplo. François Zaninotto lo explica en el blog de Symfony. La plantilla original contiene un texto que dice Hola Mundo. De forma dinámica, se va a transformar el texto original en un enlace que muestre un mensaje cuando se pinche en el.

Página original:

<span id="hola">Hola Mundo</span>
Página con PJS:
<span id="hola">Hola Mundo</span>
<?php use_helper('PJS') ?>
<?php use_pjs('mimodulo/miaccion') ?>
Acción Symfony:
// En modulos/mimodulo/actions/actions.class.php
class mimoduloActions extends sfActions
{
public function executeMiaccion()
{
$this->hora = time();
}
}
Plantilla miaccionSuccess.pjs:
// En modules/mimodulo/templates/miaccionSuccess.pjs
<?php use_helper('Javascript') ?>
document.getElementById('hola').innerHTML = "<?php echo link_to_function('Hola Mundo', 'alert(\''.$hora.'\')') ?>";
Las plantillas que hacen uso de PJS deben acabar en .pjs y no en el habitual .php.

Las ventajas de utilizar PJS son que deshabilita por defecto el proceso de decoración de la plantilla, establece el tipo MIME de la respuesta a application/x-javascript, permite un control más preciso de la cache y es más fácil de usar que el helper use_javascript().

La página del plugin sfPJSPlugin en el wiki de Symfony incluye más información sobre su instalación, configuración y algunos ejemplos.

Fuente: Symfony Plug-In of the week: sfPJS

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

25 de abril de 2007

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

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