Visualizar o padrão da camada em que você apenas apresenta o que foi dado é bom e tudo, mas como você sabe o que está disponível? Existe uma funcionalidade "listar todas as variáveis definidas" no TWIG? Existe uma maneira de despejar uma variável?
A solução que eu encontrei procurando por ele era definir uma função onde eu posso usar minhas ferramentas php depuração existentes por injeção de uma função , mas todas as referências que eu encontrei para que inclua estes agradáveis duas linhas de código, mas nada é especificado onde colocá-los. Considerando o fato de que eles precisam de uma variável $ loader definida, tentei /app/config/autoload.php, mas o $ loader era do tipo errado. Onde coloco o código php para adicionar uma função twig?
{{ dump() }}
para despejar todas as variáveis, ele retorna uma página em branco. Existe alguma outra maneira de despejar uma variável?dump
, obviamentedump
não é esse o problema. Eu sugeriria postar uma nova pergunta se você não conseguir descobrir o contrário.Você pode usar a
debug
tag, documentada aqui .Edit: A partir do Twig 1.5, isso foi preterido e substituído pela nova
dump
função (observe, agora é uma função e não é mais uma tag). Veja também: A resposta aceita acima.fonte
Unknown tag name "debug"
, estenda sua configuração (globalconfig.yml
ouconfig_dev.yml
) conforme descrito aqui: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Então, eu consegui funcionar, em parte um pouco hackish:
twig: debug: 1
emapp/config/config.yml
Adicione isso ao config_dev.yml
sudo rm -fr app/cache/dev
print_r()
, abrivendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
e mudeiprint_r(
parad(
PS. Eu ainda gostaria de saber como / onde pegar o ambiente $ twig para adicionar filtros e extensões.
fonte
twig: debug: 1
porque está herdando essas informações do ambiente do seu controlador frontal. Caso contrário, você poderá gerar informações de depuração não intencionalmente em seu ambiente de produção. Desde que você esteja trabalhando no ambiente de desenvolvimento, ele é ativado por padrão e desativado em seu ambiente de produção.Se você estiver usando o Twig no seu aplicativo como um componente, você pode fazer isso:
Em seguida, em seus modelos:
fonte
$twig = new Twig_Environment($loader, array(...
?Se você estiver usando o Twig como um componente independente, veja alguns exemplos de como habilitar a depuração, pois é improvável que a função dump (variável) funcione diretamente da caixa
Estar sozinho
Isso foi encontrado no link fornecido pelo icode4food
Silex
fonte
Despejar todas as variáveis personalizadas:
Você pode usar o meu plugin, que fará isso por você (e formatará bem a saída):
Twig Dump Bar
fonte
{{ dump() }}
não funciona para mim.PHP
engasga. Nível de aninhamento muito profundo, eu acho.Tudo o que você realmente precisa para os
debug
modelos Twig, se estiver usando um,debugger
é uma extensão como esta .Depois, basta definir um ponto de interrupção e ligar para
{{ inspect() }}
onde você precisar. Você obtém as mesmas informações do{{ dump() }}
mas no seu depurador.fonte
Desde o Symfony> = 2.6, existe um bom componente VarDumper , mas não é usado pela
dump()
função Twig .Para substituí-lo, podemos criar uma extensão:
Na implementação a seguir, não se esqueça de substituir os espaços para nome.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
fonte
A receita completa aqui para referência mais rápida (observe que todas as etapas são obrigatórias):
1) ao instanciar o Twig, passe a opção debug
2) adicione a extensão de depuração
3) Use-o como @Hazarapet Tunanyan apontou
ou
ou
fonte
Para depurar modelos do Twig, você pode usar a instrução debug .
Lá você pode definir explicitamente a configuração de depuração.
fonte
Unknown tag name "debug"
erro.Você pode editar
e mude as
the var_dump()
funções para\Doctrine\Common\Util\Debug::dump()
fonte
Como a maioria dos bons programadores de PHP gosta de usar o XDebug para realmente executar o código em execução e observar as variáveis mudarem em tempo real, o uso
dump()
parece um retrocesso para os maus velhos tempos.Foi por isso que criei uma extensão Twig Debug e a coloquei no Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Em seguida, adicione a extensão. Se você não estiver usando o Symfony, faça o seguinte:
Se estiver, assim em seus serviços, configuração YAML:
Depois de registrado, agora você pode fazer isso em qualquer lugar em um modelo de galho:
Agora, você pode usar o XDebug, a execução será pausada e você poderá ver todas as propriedades do Contexto e do Ambiente.
Diverta-se! :-D
fonte
você pode usar a função dump e imprimi-la assim
mas há uma coisa interessante também, se você não definir nenhum argumento para despejar a função, ele imprimirá todas as variáveis disponíveis , como
fonte
Se você estiver em um ambiente em que não poderá usar a
dump
função (ex: opencart), poderá tentar:fonte