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, но это ничего не изменило

Может быть, ваш сайт также кэшируется на каком-то другом уровне? Кстати, разве это не только "drush cr", а не "drush -cr"?

MilanG 25.12.2020 08:07

Я на самом деле не знаю, поэтому я написал здесь. Насчет команды я опечатался. как ты сказал drush cr

beta-developper 25.12.2020 12:34

@beta-developper, я протестировал новый установленный Drupal 9.1 в своей среде WAMP, и он работает без проблем. Вы можете проверить следующее: 1. настройки кеша drupal 2. конфигурацию кеша веб-сервера 3. файл cookie вашего браузера о кеше. Пробовали ли вы отладку с инкогнито (хром) или приватным режимом (FF), которые игнорируют файлы cookie и кеш?

John 05.01.2021 04:37

Есть ли какая-то разница, авторизованы вы или нет?

MilanG 05.01.2021 10:16

@Джон, я тщательно это проверю

beta-developper 05.01.2021 12:11

@MilanG На самом деле это не имеет значения

beta-developper 05.01.2021 12:12

Задействована ли здесь какая-либо синхронизация файлов (обычно при использовании докеров, виртуальных машин и т. д.)?

Jim Panse 05.01.2021 15:39

Возможно, вы нажимаете opcache. Вы пытались перезапустить службу php-fpm после модификации? Если это заставляет вашу модификацию работать каждый раз, проверьте настройку php.ini (или дополнительные файлы .ini, загруженные для php). В разработке я всегда ставил opcache.enable=0, чтобы этого избежать. В производственной среде вам, конечно, лучше оставить включенным opcache для повышения производительности.

Héctor Paúl Cervera-García 05.01.2021 22:06

@ HéctorPaúlCervera-García именно opcache вызвал такое поведение. Отключение решило проблему.

beta-developper 06.01.2021 12:36

@JimPanse Нет, синхронизации не было. Проблема была вызвана включенным OpCache.

beta-developper 06.01.2021 12:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
10
281
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это похоже на 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

beta-developper 06.01.2021 12:40

Другие вопросы по теме