Я пытаюсь отладить некоторый код в своем приложении 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, но это ничего не изменило
Я на самом деле не знаю, поэтому я написал здесь. Насчет команды я опечатался. как ты сказал drush cr
@beta-developper, я протестировал новый установленный Drupal 9.1 в своей среде WAMP, и он работает без проблем. Вы можете проверить следующее: 1. настройки кеша drupal 2. конфигурацию кеша веб-сервера 3. файл cookie вашего браузера о кеше. Пробовали ли вы отладку с инкогнито (хром) или приватным режимом (FF), которые игнорируют файлы cookie и кеш?
Есть ли какая-то разница, авторизованы вы или нет?
@Джон, я тщательно это проверю
@MilanG На самом деле это не имеет значения
Задействована ли здесь какая-либо синхронизация файлов (обычно при использовании докеров, виртуальных машин и т. д.)?
Возможно, вы нажимаете opcache. Вы пытались перезапустить службу php-fpm после модификации? Если это заставляет вашу модификацию работать каждый раз, проверьте настройку php.ini (или дополнительные файлы .ini, загруженные для php). В разработке я всегда ставил opcache.enable=0, чтобы этого избежать. В производственной среде вам, конечно, лучше оставить включенным opcache для повышения производительности.
@ HéctorPaúlCervera-García именно opcache вызвал такое поведение. Отключение решило проблему.
@JimPanse Нет, синхронизации не было. Проблема была вызвана включенным OpCache.






Это похоже на PHP OpCode Cache. Вы можете увидеть, включено ли оно или нет, в отчете о состоянии Drupal в разделе «Кэширование OPcode PHP». На странице об отключении кэширования Drupal [здесь][1] есть раздел об opcache. Я считаю, что для отключения opcache вы можете добавить запись в свой файл php.ini.
opcache.enable=0
Обязательно перезапустите соответствующие службы, такие как php-fpm. И проверьте его эффективность в отчете о состоянии Drupal. [1]: https://www.drupal.org/node/2598914
Я включил OpCache, как рекомендует Drupal. Но я думаю, что в среде разработки в этом нет необходимости. Спасибо @dabonde
Может быть, ваш сайт также кэшируется на каком-то другом уровне? Кстати, разве это не только "drush cr", а не "drush -cr"?