php - Drupal 9 - 代码修改不生效
问题描述
我正在尝试在我的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
,但它没有改变任何东西
解决方案
这听起来像 PHP 操作码缓存。您可以在“PHP OPcode 缓存”下的 Drupal 状态报告中查看它是否启用。有一个关于禁用 Drupal 缓存的页面 [这里][1] 其中包括关于 opcache 的部分。我相信要禁用 opcache,您可以在 php.ini 文件中添加一个条目。
opcache.enable=0
一定要重启相关服务,如 php-fpm。并在 Drupal 状态报告中验证它是否有效。[1]:https ://www.drupal.org/node/2598914
推荐阅读
- javascript - 从 POST 将 JSON 数据加载到 DataTables
- java - 在 apache poi 4.0.1 中读取 xls 文件时出现 NotOLE2FileException
- c++ - 为什么这个 if/else 语句似乎被优化掉了?
- php - JSON php解析麻烦
- pdfmake - PDFMake 生成的 PDF 中的链接不会重定向到嵌入的链接
- ios - 推送通知:api.development.push.apple.com 与 api.sandbox.push.apple.com
- angular - 未捕获的 ReferenceError:在cheerio.js:5 中未定义要求
- python - Python - 示波器
- java - 为测试设置默认 Content-Type
- amazon-web-services - 通过 ansible 安装 aws-iam-authenticator