Lee y responde un pequeño cuestionario de 20 preguntas que todo desarrollador de Twig debería poder resolver.

20 preguntas que todo desarrollador de Twig debería poder responder

En esta publicación, queremos compartir contigo 20 preguntas que todos los desarrolladores de Twig deberían poder responder. Puede pensar en esto como un cuestionario y, obviamente, puede evaluar sus conocimientos con Twig. Antes de comenzar, tenga en cuenta que:

  • Algunas preguntas tienen múltiples respuestas.
  • Las preguntas están relacionadas únicamente con Twig, nada sobre marcos que lo implementan como Symfony.
  • Aprueba la prueba con 14 (70%) preguntas respondidas correctamente.

Una vez que hayas realizado la prueba, puedes encontrar las respuestas aquí . Habiendo dicho eso, ¡comencemos!

Nota

Para hacer una prueba honesta, intente hacer la prueba sin buscar una solución. Recuerda que si no sabes la respuesta de un par de ellos, ¡no significa que seas malo con Twig! Simplemente significa que hay cosas que ni siquiera sabías, así que asegúrate de seguir aprendiendo Twig con la documentación oficial.

1. ¿Cómo se puede declarar una variable en Twig?

  1. {% define myVariable = 'My Text' %}
  2. {% set myVariable %}My Text{% endset %}
  3. {% set myVariable = 'My Text' %}
  4. {% set myVariable %}{{ 'My Text' }}{% endset %}
  5. {% set myVariable = 'My Text', 'Other Text' %}

2. ¿Cuál es el resultado del siguiente fragmento?

{{ {name: "Xavier", lastName: "Nemo", first: false, address: "P Sherman, 42 Wallaby Way, Sydney"} | first }}
  1. The filter “first” does not exist at Twig
  2. Error: Array to string conversion
  3. name
  4. Xavier
  5. False

3. ¿Cuál es la sintaxis de comentarios de Twig?

  1. {{- Comment Text -}}
  2. {[- Comment Text -]}
  3. {{# Comment Text #}}
  4. {# Comment Text #}
  5. {[ Comment Text ]}

4. El escape de salida de Twig

  1. está habilitado de forma predeterminada.
  2. se puede deshabilitar específicamente en alguna variable con el filtro raw.
  3. está deshabilitado por defecto.
  4. es necesario para prevenir ataques XSS.
  5. No se puede escapar contenido con Twig

5. ¿Twig crea una variable especial en el alcance de un bucle for para obtener información sobre la iteración actual? Si es así, ¿cuál es su nombre?

  1. Twig no ofrece tal característica.
  2. cycle
  3. loop
  4. forLoop
  5. iteration

6. ¿Cuál sería el resultado del siguiente fragmento?

{% verbatim %}
    <ul>
    {% for row in rows %}
        <li title="{{ rows.title }}">{{ rows.text }}</li>
    {% endfor %}
    </ul>
{% endverbatim %}

A.

<ul>
    <li title="Row 1 Title">Row 1 Text</li>
    <li title="Row 2 Title">Row 2 Text</li>
    <li title="Row 3 Title">Row 3 Text</li>
    <li title="Row 4 Title">Row 4 Text</li>
</ul>

B.

<ul>
    {% for row in rows %}
        <li title="{{ rows.title }}">{{ rows.text }}</li>
    {% endfor %}
</ul>

C. El tipo de bloque verbatim no existe.

D. La variable rows no existe.

7. ¿Cuál de los siguientes filtros predeterminados no existe en Twig?

  1. unescape
  2. join
  3. length
  4. split
  5. strtolower

8. ¿Cuál es el resultado del siguiente fragmento?

{% spaceless %}
    <div   class="welcome-alert">
        <h1 >Welcome David !</h1>
    </div>
{% endspaceless %}
  1. <div class="welcome-alert"><h1>Welcome David!</h1></div>
  2. Template Error: Spaceless block expects HTML content to be properly idented.
  3. <div class="welcome-alert"><h1>Welcome David !</h1></div>
  4. <div   class="welcome-alert"><h1 >Welcome David !</h1></div>
  5. <divclass="welcome-alert"><h1>WelcomeDavid!</h1></div>

9. ¿Cuál es la sintaxis correcta para concatenar cadenas?

  1. {{ "First Name" + " " + "Last Name" }}
  2. {{ "First Name" ^ "Last Name" }}
  3. {{ "First Name" ~ " " ~ "Last Name" }}
  4. {{ "First Name" "Last Name" }}
  5. {{ "First Name". " " ."Last Name" }}

10. ¿Cómo se puede verificar si 2 variables son idénticas (importantes idénticas no iguales)?

  1. {% if variableA == variableB %}
  2. {% if variableA === variableB %}
  3. {% if variableA >< variableB %}
  4. {% if variableA is identical to variableB %}
  5. {% if variableA is same as(variableB) %}

11. ¿Es posible usar las mismas constantes PHP en Twig por defecto?

  1. No, necesitaría crear una extensión personalizada.
  2. Sí, envolviendo el nombre de la constante con paréntesis triples y comillas simples.
  3. Sí, usando la función constante.
  4. Sí, usando el filtro get_constant_value.
  5. No, no es posible.

12. ¿Cómo se puede imprimir un valor aleatorio de una matriz con Twig?

  1. {{ random([1,2,3]) }}
  2. {{ [1,2,3]|random}}
  3. {{ randomize() }}
  4. {{ [1,2,3]|randomize}}
  5. No es posible.

13. ¿Cómo se puede imprimir el valor del atributo "a-b" de la siguiente matriz asociativa?

{% set MyVariable = {
    "a": 1,
    "b": 2,
    "c": 3,
    "a-b": 4
}%}
  1. {{ MyVariable("a-b") }}
  2. {{ MyVariable["a-b"]}}
  3. {{ attribute(MyVariable, 'a-b') }}
  4. {{ MyVariable.a-b }}
  5. {{ MyVariable.get('a-b')}}

14. ¿Cuál es el resultado del siguiente fragmento?

{% with %}
    {% set MyVariable = 42 %}
{% endwith %}

{{ MyVariable }}
  1. A Twig's runtime exception has been trown. Variable "MyVariable" does not exist.
  2. 42
  3. 82
  4. Null
  5. The given Twig code contains syntax error(s). Unknown "with" tag. 

15. ¿Cuáles de las siguientes palabras clave de prueba no existen en Twig?

  1. {% if a is divisible by(b) %}
  2. {% if a is iterable %}
  3. {% if a is empty %}
  4. {% if a is odd %}
  5. {% if a is instanceof b %}

16. ¿Es posible imprimir dos veces el contenido de un bloque ya existente?

  1. Sí, agregando la palabra clave copy antes del siguiente bloque, por ejemplo, {% copy BlockName%}.
  2. Sí, usando el método de bloque con el nombre del bloque que desea copiar como argumento, por ejemplo, {{block("BlockName")}}
  3. Sí, simplemente declarando el bloque dos veces.
  4. Sí, usando la palabra clave clon y una declaración de impresión con el nombre del bloque, por ejemplo, {{clone BlockName}}
  5. No es posible.

17. ¿Cuál es el resultado del siguiente fragmento?

{% set items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', "h"] %}

<table>
{% for row in items|batch(4) %}
    <tr>
        {%- for column in row -%}
            <td>{{ column }}</td>
        {%- endfor -%}
    </tr>
{% endfor %}
</table>

A.

<table>
    <tr><td>a</td><td>b</td><td>c</td><td>d</td></tr>
    <tr><td>e</td><td>f</td><td>g</td><td>h</td></tr>
</table>

B.

<table><tr><td>a</td><td>b</td><td>c</td><td>d</td></tr><tr><td>e</td><td>f</td><td>g</td><td>h</td></tr></table>

C. El filtro "batch" no existe en Twig.

D. El filtro Batch espera una cadena como primer argumento, dado un entero.

18. ¿Cuál es el resultado del siguiente fragmento?

{{ 12.4 // 2 }}
  1. The given Twig code contains syntax error(s). Unexpected character "/".
  2. 6.2
  3. 6
  4. 3.1
  5. Notice: Array to string conversion.

19. ¿Cuál de los siguientes fragmentos permite imprimir el alfabeto separado por coma?

A.

{%- for i in range("a", "z") -%}
    {{ i }},
{%- endfor -%}

B.

{%- for i in (from "a" to "z") -%}
    {{ i }},
{%- endfor -%}

C.

{%- for i in range(a, z) -%}
    {{ i }},
{%- endfor -%}

D.

{%- for i in "a".."z" -%}
    {{ i }},
{%- endfor -%}

E.

{%- for i in "a" to "z" -%}
    {{ i }},
{%- endfor -%}

20. ¿Cuál es el resultado del siguiente fragmento?

{{ app.username|default('User is not logged in') }}
  1. User is not logged in
  2. Variable "app" does not exist.
  3. Key "username" for array does not exist.
  4. The filter “default” does not exist at Twig
  5. Key "User is not logged in" for array does not exist.

¡Felicitaciones, has llegado al final de la prueba! Si cree que conoce la respuesta a todas, lo invitamos a comparar sus resultados con las respuestas correctas y la explicación aquí .

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores