Рейтинг:0

«Предупреждение PHP: require(drupal.php): не удалось открыть поток»

флаг bj

Я создал две свежие установки Drupal, одну версии 8.9.17 и другую 9.2.3, и пытался заставить консоль Drupal работать, чтобы я мог сгенерировать модуль.

Я использовал следующую команду в Composer и успешно загрузил ее.

для композитора требуется drupal/console:~1.0 \
--prefer-расстояние \
--оптимизировать-автозагрузчик \
--сортировать-пакеты \
--без обновления

Затем выполните следующее, чтобы избежать ошибки конфликта Symphony.

обновление композитора

Это загрузило соответствующие файлы и зависимости, но когда я пытаюсь получить к ним доступ из командной строки (см. Ниже)

$ ../../../../вендор/бин/друпал

Я получаю следующую ошибку.

Предупреждение: require(drupal.php): не удалось открыть поток: нет такого файла или каталог в C:\xampp\htdocs\project_name\vendor\bin\drupal(21): Код eval() в строке 3 PHP Неустранимая ошибка: require(): Failed открытие необходимого 'drupal.php' (include_path='C:\xampp\php\PEAR') в C:\xampp\htdocs\project_name\vendor\bin\drupal(21): код eval() в строке 3

Неустранимая ошибка: require(): Не удалось открыть требуемый 'drupal.php' (include_path='C:\xampp\php\PEAR') в C:\xampp\htdocs\project_name\vendor\bin\drupal(21): eval()'d код в строке 3

Я посмотрел на веб-сайте консоли Drupal, и совет был

Это может быть вызвано расширением загрузчика ioncube.

Поскольку я работаю с Xammp в Windows 10, ioncube по умолчанию недоступен в файле php.ini. Что я должен искать, чтобы решить эту проблему?

РЕДАКТИРОВАТЬ Мне было указано, что Drush теперь включает генерирующие команды и должен использоваться вместо консоли Drupal, которая кажется устаревшей.

флаг cn
Последнее, что я слышал (некоторое время назад), Drupal Console устарела и не поддерживается, хотя все команды `generate` доступны в Drush.
флаг bj
@ Клайв, о. Я не вижу этого, когда запускаю Drush - https://pastebin.com/7BrZ4vXe, но я только что просмотрел веб-сайт Drush и вижу их там. Интересно, может надо еще покопаться.
флаг cn
Да, я постоянно им пользуюсь: https://imgur.com/a/WiDdY3w
флаг bj
@Клайв, ты прав. Не знал, что он указан в разделе «Глобальный» - мне нужно это проверить. Спасибо!
miststudent2011 avatar
флаг fr
@Clive одна важная и полезная команда, отсутствующая в drush, - это экспорт конфигурации типа объекта. Как экспорт конфигурации пакета узла. Который присутствует в консоли Drupal. Если я не знаю о существующей команде.
флаг cn
Я так не думаю @miststudent2011, я думаю, что эта команда отсутствует/не реализована, как вы говорите. Функции обеспечивают аналогичную функциональность, я думаю
miststudent2011 avatar
флаг fr
@clive Да, функции предоставляют аналогичные функции, но они не экспортируют конфигурацию хранилища полей, что делает экспорт конфигурации пакета бесполезным. Если я не ошибся при экспорте конфигов через feature.
Рейтинг:1
флаг bj

Итак, сразу после того, как я разместил вопрос, я нашел решение. Я надеюсь, что это поможет кому-то еще в подобной ситуации.

Ошибка, по сути, говорит о том, что файл drupal.php не может быть найден. Итак, я зашел в каталог vendor/bin/drupal, где отсутствовал файл:

поставщик/drupal/консоль/bin/drupal

Если вы откроете этот файл, вы увидите следующий код, ссылающийся на отсутствующий файл drupal.php.

#!/usr/bin/env php
<?php
 
требуется 'drupal.php';

Я сравнил это с Drush (который работал нормально) и увидел, что файл Drush был похож, но включал ссылку на каталог. __КАТАЛОГ__. Я обновил файл drupal.php следующим образом, и теперь он работает как положено.

#!/usr/bin/env php
<?php
    
требуется __DIR__ . '/drupal.php';

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.