Ver el patrón de capa donde solo presenta lo que le han dado está bien y todo, pero ¿cómo sabe lo que está disponible? ¿Existe una funcionalidad de "enumerar todas las variables definidas" en TWIG? ¿Hay alguna manera de volcar una variable?
La solución que encontré al buscarla fue definir una función en la que pueda usar mis herramientas de depuración php existentes mediante la inyección de una función , pero todas las referencias que he encontrado incluyen estas dos bonitas líneas de código, pero en ningún lugar se especifica dónde colocarlos Por el hecho de que necesitan una variable $ loader definida, probé /app/config/autoload.php pero el $ loader allí era del tipo incorrecto. ¿Dónde coloco el código php para agregar una función de ramita?
{{ dump() }}
para volcar todas las variables, devuelve una página en blanco. ¿Hay alguna otra forma de volcar una variable?dump
, obviamentedump
no es el problema. Sugeriría publicar una nueva pregunta si no puede resolverlo de otra manera.Puede usar la
debug
etiqueta, que se documenta aquí .Editar: a partir de Twig 1.5, esto ha quedado en desuso y reemplazado con la nueva
dump
función (nota, ahora es una función y ya no es una etiqueta). Ver también: La respuesta aceptada arriba.fuente
Unknown tag name "debug"
, extienda su configuración (ya sea globalconfig.yml
oconfig_dev.yml
) como se describe aquí: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Así que lo hice funcionar, en parte un poco hack:
twig: debug: 1
enapp/config/config.yml
Agregue esto a config_dev.yml
sudo rm -fr app/cache/dev
print_r()
, abrívendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
y cambiéprint_r(
ad(
PD. Todavía me gustaría saber cómo / dónde tomar el entorno $ twig para agregar filtros y extensiones.
fuente
twig: debug: 1
porque está heredando esta información del entorno de su controlador frontal. De lo contrario, podría terminar generando información de depuración de forma no intencional en su entorno de producción. Mientras trabaje en el entorno de desarrollo, estará habilitado de forma predeterminada y estará deshabilitado en su entorno de producción.Si está utilizando Twig en su aplicación como componente , puede hacer esto:
Luego en tus plantillas:
fuente
$twig = new Twig_Environment($loader, array(...
?Si está utilizando Twig como un componente independiente, aquí hay un ejemplo de cómo habilitar la depuración, ya que es poco probable que la función de volcado (variable) funcione de inmediato.
Ser único
Esto se encontró en el enlace proporcionado por icode4food
Sílex
fuente
Volcar todas las variables personalizadas:
Puede usar mi complemento que lo hará por usted (y formateará muy bien la salida):
Barra de descarga de ramita
fuente
{{ dump() }}
no funciona para miPHP
chokes Nivel de anidación demasiado profundo, supongo.Todo lo que realmente necesita
debug
la ramita plantillas si usted está utilizando unadebugger
es una extensión como esta .Entonces es solo cuestión de establecer un punto de interrupción y llamar a
{{ inspect() }}
donde lo necesite. Obtiene la misma información que con{{ dump() }}
pero en su depurador.fuente
Desde Symfony> = 2.6, hay un buen componente VarDumper , pero no es utilizado por la
dump()
función Twig .Para sobrescribirlo, podemos crear una extensión:
En la siguiente implementación, no olvide reemplazar los espacios de nombres.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
fuente
La receta completa aquí para una referencia más rápida (tenga en cuenta que todos los pasos son obligatorios):
1) al instanciar Twig, pasa la opción de depuración
2) agregue la extensión de depuración
3) Úselo como señaló @Hazarapet Tunanyan
o
o
fuente
Para depurar plantillas de Twig puede usar la instrucción de depuración .
Allí puede establecer la configuración de depuración explícitamente.
fuente
Unknown tag name "debug"
error.Puedes editar
y cambiar
the var_dump()
funciones a\Doctrine\Common\Util\Debug::dump()
fuente
Como a la mayoría de los buenos programadores de PHP les gusta usar XDebug para realmente recorrer el código en ejecución y ver cómo cambian las variables en tiempo real, el uso se
dump()
siente como un paso atrás a los viejos tiempos.Es por eso que hice una extensión Twig Debug y la puse en Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Luego agrega la extensión. Si no estás usando Symfony, así:
Si es así, así en la configuración de YAML de sus servicios:
Una vez registrado, ahora puede hacer esto en cualquier lugar en una plantilla de ramita:
Ahora, puede usar XDebug, la ejecución se detendrá y podrá ver todas las propiedades del Contexto y el Entorno.
¡Que te diviertas! :-RE
fuente
puedes usar la función de volcado e imprimirlo así
pero también hay una cosa buena, si no configura ningún argumento para volcar la función, imprimirá todas las variables disponibles , como
fuente
Si se encuentra en un entorno donde no puede usar la
dump
función (por ejemplo, opencart), puede intentar:fuente