【问题标题】:Display PHP Opcode without execution显示 PHP 操作码而不执行
【发布时间】:2020-05-10 23:09:18
【问题描述】:

要显示特定文件(example.php)的操作码,有两个扩展名VLDZend Opchache

当我们选择 vld.execute=0 时,VLD 具有生成操作码而不执行文件的属性。

php -d vld.active=1 -d vld.execure=0 example.php

我的问题:我可以使用 Zend Opcache 生成操作码但不执行文件吗?我必须在配置文件中进行哪些更改才能拥有此选项?

php -d opcache.opt_debug_level=0x10000 example.php

【问题讨论】:

    标签: php opcode


    【解决方案1】:

    是的,通过调用 opcache_compile_file() 并将文件路径传递给它。

    您可以像这样从 CLI 执行此操作:

    php -d opcache.opt_debug_level=0x10000 -r 'opcache_compile_file("example.php");'
    

    【讨论】:

    • 感谢您的回答。我有一个问题,在这种情况下,操作码将在没有包含和必需的文件的情况下生成。所以如果我在example.php中有include(“library1.php”)。它将仅打印 example.php 的操作码。而在正常情况下,它将打印两个文件的操作码。你知道是否有另一个功能允许我这样做。谢谢:))
    • 不是原生在 opcache 扩展中,没有。使用像 nikic/php-parser 这样的库来解析您发送到 opcache 的每个文件对于 includeinclude_oncerequire 和/或 require_once 语句并不难,以了解您需要哪些其他文件不过,发送到 opcache。
    猜你喜欢
    • 2016-01-29
    • 2021-07-02
    相关资源
    最近更新 更多