Extensiones Twig de Symfony2

Twig es el motor de plantillas predeterminado en Symfony2. Por sí mismo, ya tiene integradas muchas funciones, filtros, etiquetas y pruebas (http://gitnacho.github.com/Twig luego desplázate hasta abajo).

Symfony2 añade más extensiones personalizadas en lo alto de Twig para integrar algunos componentes a las plantillas de Twig. Abajo está la información sobre todas las funciones personalizadas, filtros, etiquetas y pruebas añadidas usando el núcleo de la plataforma Symfony2.

También puede haber etiquetas en los paquetes que utilizas comúnmente que no están enumeradas aquí.

Funciones

Nuevo en la versión 2.1: Las funciones csrf_token, logout_path y logout_url se agregaron en Symfony 2.1

Nuevo en la versión 2.2: The render and controller functions are new in Symfony 2.2. Anteriormente se utilizaba la etiqueta {% render %} y tenía una firma diferente.

Function Syntax Usage
render(uri, options = {}) render(controller('B:C:a', {params})) render(path('route', {params})) render(url('route', {params})) This will render the fragment for the given controller or URL For more information, see Integrando controladores. Integrando controladores.
render_esi(controller('B:C:a', {params})) render_esi(url('route', {params})) render_esi(path('route', {params})) Esta genera una etiqueta ESI cuando es posible o de lo contrario vuelve a caer al comportamiento de render. Para más información, ve Integrando controladores.
render_hinclude(controller(...)) render_hinclude(url('route', {params})) render_hinclude(path('route', {params})) Esta genera una etiqueta hinclude para el controlador o la URL dada. para más información, ve
controller(attributes = {}, query = {}) Used along with the render tag to refer to the controller that you want to render.
asset(path, packageName = null) Get the public path of the asset, more information in “Enlazando activos”.
asset_version(packageName = null) Obtiene la versión actual del paquete, más información en «Enlazando activos».
form_enctype(view) Dibuja el atributo enctype="multipart/form-data" requerido si el formulario cuando menos tiene un campo para subir archivos, más información en la Referencia de formularios Twig.
form_widget(view, variables = {}) Dibuja un formulario completo o el HTML del elemento gráfico de un campo específico, más información en la Referencia de formularios Twig.
form_errors(view) Dibuja cualquier error para el campo dado o los errores «globales», más información en la Referencia de formularios Twig.
form_label(view, label = null, variables = {}) Dibuja la etiqueta del campo dado, más información en la Referencia de formularios Twig.
form_row(view, variables = {}) Dibuja la fila (las etiquetas de los campos, errores y elementos gráficos) del campo dado, más información en la Referencia de formularios Twig.
form_rest(view, variables = {}) Dibuja todos los campos que no se han pintado todavía, más información en la Referencia de formularios Twig.
csrf_token(intention) Dibuja un testigo CSRF. Usa esta función si deseas protección CSRF sin crear un formulario
is_granted(role, object = null, field = null) Devuelve true si el usuario actual tiene el rol necesario, más información en «Controlando el acceso en plantillas»
logout_path(key) Genera la URL relativa para cerrar la sesión del cortafuegos dado
logout_url(key) Igual a logout_path(...) pero esta genera una URL absoluta
path(name, parameters = {}) Obtiene una URL relativa para la ruta dada, más información en «Enlazando páginas».
url(name, parameters = {}) Igual a path(...) pero esta genera una URL absoluta

Filtros

Nuevo en la versión 2.1: El filtro humanize se añadió en Symfony 2.1

Filter Syntax Usage
text|humanize Makes a technical name human readable (replaces underscores by spaces and capitalizes the string)
text|trans(arguments = {}, domain = 'messages', locale = null) This will translate the text into the current language, more information in . Translation Filters.
text|transchoice(count, arguments = {}, domain = 'messages', locale = null) This will translate the text with pluralization, more information in Translation Filters.
variable|yaml_encode(inline = 0) Transforma el texto de la variable a la sintaxis de YAML.
variable|yaml_dump Dibuja una sintaxis yaml con su tipo.
classname|abbr_class Dibuja un elemento abbr con el nombre corto de una clase PHP.
methodname|abbr_method Dibuja un método PHP dentro de un elemento abbr (p. ej. Symfony\Component\HttpFoundation\Response::getContent)
arguments|format_args Dibuja una cadena con los argumentos de una función y sus tipos
arguments|format_args_as_text Igual a [...]|format_args, pero le quita las etiquetas.
path|file_excerpt(line) Dibuja un extracto de un archivo de código en torno a una determinada línea.
path|format_file(line, text = null) Dibuja la ruta a un archivo en un enlace.
exceptionMessage|format_file_from_text Igual a format_file excepto que añade a la cadena de error predefinida la ruta al archivo (es decir, ‘en foo.php en la línea 45’)
path|file_link(line) Dibuja la ruta al archivo correcto (y número de línea)

Etiquetas

Tag Syntax Usage
{% form_theme form 'file' %} This will look inside the given file for overridden form blocks, more information in Cómo personalizar la reproducción de un formulario.
{% trans with {variables} %}...{% endtrans %} This will translate and render the text, more information in Plantillas Twig
{% transchoice count with {variables} %} ... {% endtranschoice %} This will translate and render the text with pluralization, more information in Plantillas Twig
{% trans_default_domain language %} This will set the default domain for message catalogues in the current template

Pruebas

Nuevo en la versión 2.1: La prueba selectedchoice se añadió en Symfony 2.1

Sintaxis de la prueba Uso
selectedchoice(choice, selectedValue) Devuelve true si la opción para el valor dado en el formulario está seleccionada

Variables globales

Variable Uso
app Attributes: app.user, app.request app.session, app.environment, app.debug app.security La variable app está disponible en todas partes, y proporciona rápido acceso a muchos objetos necesarios comúnmente. La variable app es una instancia de Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables

Extensiones de la edición estándar de Symfony

La edición estándar de Symfony añade algunos paquetes al núcleo de la plataforma Symfony2. Dichos paquetes pueden tener otras extensiones de Twig:

Bifúrcame en GitHub