Estándares de Codificación

Note

La herramienta Twig CS fixer utiliza los estándares de codificación descritos en este documento para corregir automáticamente tus plantillas.

Al escribir plantillas Twig, te recomendamos seguir estos estándares oficiales de codificación:

  • Pon exactamente un espacio después del inicio de un delimitador ({{, {%, y {#) y antes del final de un delimitador (}}, %}, y #}) si el contenido no está vacío:
{{ user }}
{# comment #} {##}
{% if user %}{% endif %}

Cuando uses el carácter de control de espacios en blanco, no pongas ningún espacio entre él y el delimitador:

{{- user -}}
{#- comment -#} {#--#}
{%- if user -%}{%- endif -%}
  • Pon exactamente un espacio antes y después de los siguientes operadores: operadores de comparación (==, !=, <, >, >=, <=), operadores matemáticos (+, -, /, *, %, //, **), operadores lógicos (not, and, or), ~, is, in, y el operador ternario (?:):
{{ 1 + 2 }}
{{ first_name ~ ' ' ~ last_name }}
{{ is_correct ? true : false }}
  • Pon exactamente un espacio después del signo : en mapeos y , en secuencias y mapeos:
[1, 2, 3]
{'name': 'Fabien'}
  • No pongas ningún espacio después de un paréntesis de apertura y antes de un paréntesis de cierre en expresiones:
{{ 1 + (2 * 3) }}
  • No pongas ningún espacio antes y después de los delimitadores de cadena:
{{ 'Twig' }}
{{ "Twig" }}
  • No pongas ningún espacio antes y después de los siguientes operadores: |, ., .., []:
{{ name|upper|lower }}
{{ user.name }}
{{ user[name] }}
{% for i in 1..12 %}{% endfor %}
  • No pongas ningún espacio antes y después de los paréntesis utilizados para llamadas a filtros y funciones:
{{ name|default('Fabien') }}
{{ range(1..10) }}
  • No pongas ningún espacio antes y después de la apertura y cierre de secuencias y mapeos:
[1, 2, 3]
{'name': 'Fabien'}
  • Pon exactamente un espacio antes y después de = en declaraciones de argumentos de macros:
{% macro html_input(class = "input") %}
  • Pon exactamente un espacio después del signo : cuando uses argumentos con nombre:
{{ html_input(class: "input") }}
  • Usa snake_case para todos los nombres de variables (proporcionados por la aplicación y creados en plantillas), nombres de funciones/filtros/tests, nombres de argumentos y argumentos con nombre:
{% set name = 'Fabien' %}
{% set first_name = 'Fabien' %}

{{ 'Fabien Potencier'|to_lower_case }}
{{ generate_random_number() }}

{% macro html_input(class_name) %}

{{ html_input(class_name: 'pwd') }}
  • Indenta tu código dentro de las etiquetas (usa la misma indentación que la utilizada para el lenguaje objetivo de la plantilla renderizada):
{% block content %}
    {% if true %}
        true
    {% endif %}
{% endblock %}
  • Usa : en lugar de = para separar nombres y valores de argumentos:
{{ data|convert_encoding(from: 'iso-2022-jp', to: 'UTF-8') }}