En este minitutorial vamos a ver cómo usar una constante definida en una clase PHP de un desarrollo Symfony en una plantilla Twig.
Como ejemplo utilizaremos una entidad Symfony que almacena el estado de un pedido, con tres constantes que podríamos usar en una plantilla twig para mostrar distintas vistas personalizadas:
<?php
namespace Vabadus\AdminBundle\Entity;
/**
* @ORM\Entity
* @ORM\Table
*/
class PedidoEstado
{
const PENDIENTE = 'Pendiente de pago';
const PAGADO = 'Pagado';
const ENVIADO = 'Enviado';
// ...
}
Para recuperar en una plantilla twig las constantes de la clase PHP anterior, solo necesitaríamos utilizar la función constant()
, tal y como se puede ver a continuación:
{% if pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado:: PENDIENTE') %}
{# ... #}
{% elseif pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado::PAGADO') %}
{# ... #}
{% elseif pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado::PAGADO') %}
{# ... #}
{% endif %}
Ten en cuenta que los dos backslash (\\) en la referencia a la entidad Symfony de la llamada a la función constant()
en la plantilla twig, no es un error.