Eu já vi muita discussão sobre como é difícil trabalhar com o kint () do módulo Devel, porque ele maximiza os limites de memória PHP e faz o navegador arrastar. Eu ouvi algumas reflexões sobre como melhorar sua velocidade limitando o número de níveis. Por exemplo, em settings.php, você pode fazer o seguinte:
require_once DRUPAL_ROOT . '/modules/contrib/devel/kint/kint/Kint.class.php';
Kint::$maxLevels = 3;
Alguma outra maneira de melhorar a velocidade do kint ()?
theming
8
performance
chrisshattuck
fonte
fonte
Respostas:
Existem duas outras maneiras que outros usuários mencionaram para definir os níveis máximos de saída, além do método settings.php mencionado na pergunta, além de algumas outras idéias abaixo:
Crie um
/modules/contrib/devel/kint/kint/config.php
arquivo e adicione / modifique a linha$_kintSettings['maxLevels'] = 3;
(por @mdrummond no Slack)Em uma função de pré-processo, adicione o seguinte: (por @thpoul no Slack)
Certifique-se de nunca clicar no
+
sinal, que mostra a árvore inteira. Clique no bloco. Você pode clicar na seta para a direita para abrir a saída em uma nova janela para facilitar a visualização (como quando a saída está em um bloco). (por @cwightrun no Slack)Em vez de usar kint (), crie uma função de pré-processo e use um depurador para explorar as variáveis. (por @danny_englander no Slack)
Passe kint () uma variável específica em vez de fazê-la rolar por toda a árvore ( por @No Sssweat abaixo ).
Se você só precisa saber quais variáveis existem, basta ver as chaves fazendo um
{% for key, value in _context %}
loop ( por @mortendk abaixo )fonte
kint_require(); Kint::$maxLevels = 3;
na sua função de pré-processo é GOLD . Obrigado! Permite definir níveis arbitrários, conforme necessário. Basta usá-lo agora para despejar coisas com 2 níveis e depois imediatamente despejar um objeto diferente com 5 níveis.O Kint não é a única biblioteca que você pode usar para depurar variáveis e modelos de galho.
Sugiro usar o var-dumper Symfony que IMHO é uma das lib mais poderosas para variáveis de depuração. O Symfony var-dumper está integrado à versão mais recente do módulo devel (consulte este problema na fila de problemas do devel Adicione uma integração básica do symfony var-dumper )
Para uso com var-dumper com devel
composer require symfony/var-dumper
){{ devel_dump() }}
ou{{ kpr() }}
ou em{{ dpm() }}
vez de {{kint ()}} para variáveis de depuração em modelos de galhofonte
Aqui está outra dica:
Em vez de usar o
{{ kint() }}
que retornará tudo, você pode ser mais específico passando a variável necessária; assim, ele carregará mais rápido.Por exemplo: No nó - [type] .html.twig, você pode passar a variável de conteúdo para o kint:
{{ kint(content) }}
Se você souber o nome do campo, poderá ser ainda mais específico:
Isso retornará apenas o (s) valor (es) do nome do campo.
fonte
em vez de usar o kint, você pode fazer esse pequeno truque para ter uma idéia do que está lá
node.html.twig
sim, não dá todo o amor que o kint quer mostrar, mas pelo menos você coloca os nomes etc.
fonte
Quando é impossível obter a visualização HTML ou é muito lento para carregar a saída do kint .
Vou serializar a variável e salvá-la com
\Drupal::logger('custom debug')->notice($string);
Então copiarei para unserialize.com e escolhi a exibição do Krumo ....
fonte
Adicionando
$GLOBALS['_kint_settings']['maxLevels'] = 4;
em seu settings.local.php deve fazer o truque. Sinta-se livre para alterar o número de níveis aqui.fonte
$GLOBALS['_kint_settings']['maxLevels']
em settings.local.php é substituído pelo valor padrão em /modules/contrib/devel/kint/kint/config.php .