问题标签 [kint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
108 浏览

r - R Markdown 无法获取 RStudio 版本 - knit 中的错误消息

我的 R Markdown 代码块中有以下行 RStudio.Version()$version

当我在 R Markdown 上运行 knit 以创建 Word 文档时,我收到以下错误消息:

RStudio.Version() 中的错误:找不到函数“RStudio.Version”

当我RStudio.Version() 在 RStudio 控制台中运行这个函数时,我得到了版本并且函数运行,但是当我运行 R Markdown 时没有使用 knit。

有人有建议或解决方案吗?

0 投票
1 回答
119 浏览

php - 我不断收到“调用未定义函数..”错误显示

我是 PHP 编程的新手,我正在尝试自学 WordPress 主题开发以获得乐趣,我正在使用 PhpStorm 作为我的 IDE。

我试图更好地理解 WordPress 的内部运作,但我在某些事情上遇到了障碍。

我创建了一个沙盒插件,用于玩 WordPress。

在我的“wp-content/plugins/sandbox/sandbox.php”文件中,我只是运行基本的 PHP 代码来帮助我习惯与 WordPress 相关的语言。

另外,我使用 Composer 安装了 Kint 和 Whoops 来帮助调试。

现在我已经解决了这个问题,这就是我正在做的事情:

代码 #1

当我在上面运行代码 #1 时,一切都很好,并且 Kint 显示的值也很好。

现在对于我遇到的问题,我对 WordPress 不了解:

代码 #2

当我运行上面的代码 #2 时,Whoops 报告以下错误:

调用未定义的函数MyDevPlaygroundSandbox\wp_get_current_user

出于某种原因,当我运行代码 #1 时,wp_get_current_user()函数加载得很好,但代码 #2 却没有。

如果可能的话,有人可以帮助我理解为什么这是外行的术语吗?

代码 #1 和代码 #2 有什么区别?

为什么wp_get_current_user()函数没有在Code #2中加载,但它在Code #1中?

谢谢您的帮助。

0 投票
2 回答
70 浏览

php - 如何从 Kint 模拟/捕获不寻常的 PHP 操作数

背景(介绍)
Kint是一种 PHP 调试工具,可作为 PHP 的var_dump()、、print_r()debug_backtrace(). Kint 的一个不寻常的——至少对于 PHP 来说——的特性是能够以操作数的形式使用实时修饰符。以下是手册对该功能的说明:

您可以使用几个实时修改器:

  • ~d($var) 此调用将以纯文本格式输出。
  • +d($var) 将忽略深度级别限制并输出所有内容。小心,这会使您的浏览器挂在大型物体上!
  • !d($var) 将自动扩展输出。
  • -d($var) 将尝试 ob_clean 先前的输出并在打印后刷新。
  • 你也可以组合修饰符:~+d($var)

如果您需要更多信息,有一个与此问题类似的较旧的现有 SO 问题。


问题

  1. Kint 如何在不触发 PHP 错误的情况下添加这些操作数?
  2. 如何模拟/捕获使用这些操作数的任何调用?

如果您尝试使用这些操作数或创建自己的函数来捕获您获得的 Kint 操作数调用,则无需加载 Kint Fatal error: Uncaught Error: Unsupported operand types

重要提示:我正在使用该kint.phar文件,并且没有使用 composer 或任何类型的 CLI 用法。



我的用例(请不要从问题中分心)
我正在为那些好奇的人添加此信息并进一步澄清我的问题。我真诚地想了解和了解他们是如何做到这一点的,并希望能得到答案。这个问题不是关于捍卫/批评/不同意我的用例:

为了安全和优化,我正在创建一个假的(空)Kint 类,当我的站点处于生产模式时加载该类。这确保了任何意外遗留在代码中的 Kint 调用都不会触发致命错误,永远不会打印出任何内容,并且与加载真正的 Kint 类相比,使用的资源更少。

我知道你可以禁用 Kint ,Kint::$enabled_mode = false;但不要专注于此。这是我用来伪造 Kint 类的代码。所缺少的只是捕获使用这些非标准操作数的调用: