0

我正在尝试在我的Drupal 9应用程序上调试一些代码。

例如,在文件web/index.php中,我尝试添加die('Was here')

<?php 

    use Drupal\Core\DrupalKernel;
    use Symfony\Component\HttpFoundation\Request;

    $autoloader = require_once 'autoload.php';

    //My code is here
    die('Was here');

    $kernel = new DrupalKernel('prod', $autoloader);

    $request = Request::createFromGlobals();
    $response = $kernel->handle($request);
    $response->send();
    $kernel->terminate($request, $response);

起初,我在浏览器上得到了结果。接下来我删除了这个die函数,当我刷新浏览器时,我和以前一样,就好像我没有更改代码一样

几分钟后,预期的结果会显示在我的浏览器中。太奇怪了

所以我想知道为什么 Drupal 没有考虑到代码更改。

顺便说一句,我运行了命令drush cr,但它没有改变任何东西

4

1 回答 1

1

这听起来像 PHP 操作码缓存。您可以在“PHP OPcode 缓存”下的 Drupal 状态报告中查看它是否启用。有一个关于禁用 Drupal 缓存的页面 [这里][1] 其中包括关于 opcache 的部分。我相信要禁用 opcache,您可以在 php.ini 文件中添加一个条目。

opcache.enable=0

一定要重启相关服务,如 php-fpm。并在 Drupal 状态报告中验证它是否有效。[1]:https ://www.drupal.org/node/2598914

于 2021-01-05T23:08:49.867 回答