首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调试twig模板时,如何使kint()加载得更快?

在调试twig模板时,如何使kint()加载得更快?
EN

Drupal用户
提问于 2016-08-18 05:03:08
回答 7查看 12.7K关注 0票数 18

我已经看到了很多关于Devel模块中的kint()如何很难使用的讨论,因为它极大地限制了PHP内存并使浏览器拖动。我听到了一些关于通过限制等级的数量来提高速度的想法。例如,在settings.php中,您可以执行以下操作:

代码语言:javascript
复制
require_once DRUPAL_ROOT . '/modules/contrib/devel/kint/kint/Kint.class.php';
Kint::$maxLevels = 3;

还有其他方法来提高kint()的速度吗?

EN

回答 7

Drupal用户

发布于 2016-09-12 19:26:38

Kint并不是唯一一个可以用来解压变量和twig模板的库。

我建议使用塞福尼,IMHO是调试变量的最强大的库之一。Symfony var-dumper与最新版本的devel模块集成(请参阅devel问题队列添加一个基本的symfony var-dumper集成中的这个问题)。

与devel一起使用var-dumper

  • 下载和安装开发模块
  • 通过编写器(composer require symfony/var-dumper)安装var-dumper
  • 转到“开发设置”页面,并将var-dumper设置为默认的转储程序。
  • 在twig模板中使用{{ devel_dump() }}{{ kpr() }}{{ dpm() }}而不是{{ kint() }来调试变量
票数 8
EN

Drupal用户

发布于 2020-04-08 23:42:31

FYI,从Devel v3开始,如果使用@chrisshattuck建议的top方法,您需要进行两次更新

  1. 转到admin/config/development/devel?q=/admin/config/development/devel
  2. 确保选中了"Kint“。
  3. 若要重写最大深度,请转到settings.local.php并更新max_depth变量。
代码语言:javascript
复制
  include_once(DRUPAL_ROOT . './../vendor/kint-php/kint/src/Kint.php');
  if (class_exists('Kint')) {
    Kint::$max_depth = 4;
   }  
票数 7
EN

Drupal用户

发布于 2016-08-19 02:47:56

以下是另一条建议:

与使用将返回所有内容的{{ kint() }}不同,您可以通过传递所需的变量来进行更具体的操作;因此,它将加载得更快。

例如:在节点--类型.html.twig中,可以将内容变量传递给kint:

{{ kint(content) }}

如果您知道该字段的名称,则可以更加具体:

代码语言:javascript
复制
{{ kint(content.field_name['#items'].getValue()) }}

这将只返回字段名的值(S)。

票数 2
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/211928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档