Доброго времени суток, уважаемое сообщество.
Появилось проблема которую я так и не смог решить, хотя перерыл немало материала на просторах интернет.
В общем так. Устанавливаю Drupal 10 через composer на OpenServer(на Windows 10 работаю):
composer create-project drupal/recommended-project drupal10
Ставлю модули также через composer:
1) composer require drush/drush - сам Drush
2) composer require drupal/smart_date_calendar_kit - ну и модуль https://www.drupal.org/project/smart_date_calendar_kit
Второй этап установки через Drush, записываем данные в БД:
vendor\drush\drush\drush site-install standard ^
--db-url=mysql://root:DataBasePassword@localhost:3306/DatabaseName ^
--account-name=name --account-pass=password ^
--site-name=kids_tour --site-mail=fanisga@drupal.ru -y
И дальше есть две ветки развития событий:
-- 1) Мы НЕ открываем сайт через браузер, ничего там НЕ делаем, ну т.е. НЕ логинемся, НЕ создаем контент, и вообще НЕ ходим по сайту, НЕ пробуем пользоваться поиском. Ну то есть ничего не трогаем на сайте через браузер.
Активируем модули с помощью Drush:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y - активируем два модуля.
После активации ТОЛЬКО открываем сайт ну и работаем дальше все отлично.
--2) До активации модулей, т.е. до этапа:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y
решили заглянуть на сайт через браузер, ну и к примеру залогинелись под админом. Ну или просто не залогиневшись воспользовались поиском. Не важно что то сделали через браузер.
Активируем модули:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y
И начинается...
Если кликнуть на админ панели Сonfiguration вылетает ошибка:
The website encountered an unexpected error. Please try again later.
Error: Class "Drupal\smart_date\Plugin\Field\FieldType\SmartDateItem" not found in Drupal\field\FieldStorageConfigStorage->mapFromStorageRecords() (line 169 of core\modules\field\src\FieldStorageConfigStorage.php).
Ели попытаться создать тип материала Event вылетает ошибка:
The website encountered an unexpected error. Please try again later.
Error: Class "\Drupal\smart_date\Plugin\Field\FieldType\SmartDateFieldItemList" not found in Drupal\Core\TypedData\TypedDataManager->createInstance() (line 91 of core\lib\Drupal\Core\TypedData\TypedDataManager.php).
Я попытался очистить КЭШ, и тогда:
The website encountered an unexpected error. Please try again later.
Error: Class "Drupal\smart_date\Plugin\Field\FieldType\SmartDateItem" not found in Drupal\field\FieldStorageConfigStorage->mapFromStorageRecords() (line 169 of core\modules\field\src\FieldStorageConfigStorage.php).
Сайт ломается окончательно и не одна страница уже не доступна.
Единственный выходом из ситуации которую я вижу, это не использовать Drush для активации модулей, и вообще управления сайтом. Только ядро ставить остальное вручную.
И да. Если модули активировать вручную, через браузер, админ панель, то все хорошо работает. Проблем нет.
Моя версия Drush: 11.4.0. Хотел попробовать установить более раннюю, но выкатывает ошибки не ставиться.
Версия PHP 8.1.9.
Да, я новичке в Drupal. Хотел сразу работать по взрослому, через Drush.
Заранее спасибо!!!!
Комментарии
Фанис, думаю ваших знаний достаточно, чтобы найти виртульный сервер и попробовать на нем. Еще на шареде Радона это нормально настроено.
А потом уже проверить на Опен сервере. Сам слез с Опен сервера на Docker4Drupal из-за похожих проблем с Драшем.
Т.е. локальная разработка это хорошо, но вот откуда новичек должен знать как оно все впринцпе должно работать - я не скажу.
Я вышеприведенный модуль в глаза не видел, но судя по ошибкам- проблема в кешировании php скриптов, т.е. в настройках вашего openserver-а. Т.е. вы через драш активировали модули, запись об этом появилась в БД, но пхп процесс вебсервера не прочитал файлы модуля с диска.
А если через drush принудительно включить smart_date, то ошибка есть?
Вообще, ошибки возникают при включении любого модуля через drush, просто разной степени фатальности. Тут опять таки все упирается в условие: Делал ли ты что ни будь на сайте до активации модулей. Если не заходил на сайт после ее установки, а только работаешь через drush норм. Но если открыл сайт до включения ЛЮБОГО модуля, то какая ни будь ошибка да выпотеть.
Это и есть одна из главных причин, почему сейчас я хочу уйти как можно скорее от Друпала, после 10 лет использования. Я пользователь, могу со многим вещами разобраться, благо учебных материалов много, особенно много на английском, но я не PHP-программист, и после 7-ки ты уже вынужден полагаешься на волю случая, что все команды в консоли пройдут нормально. А что там при этом происходит, знает только php-задрот.
Поэтому, любая ошибка, как у вас, и вы в тупике, откуда путь только назад, откатываться, и что-то пробовать другое. Поймите, что Друпал - это для программистов, а обычным пользователям там места нет. Банальный редактор прикрутили только в 10-ке, Карл(!!!). Лет через 15-20, глядишь, фронтенд нормальный появится, типа Adaptive Theme. От прогресса не убежишь...
Посмотрите в сторону Concrete CMS, там drug-and-drop технологии, и при этом это не просто конструктор, а многое можно самому настраивать под себя. Зачем вам программировать смартфон, чтобы им пользоваться???
к выше описанному можно еще добавить такое чудо как composer. Даже Пётр Селфин нервничал с композером на стриме по обновлению друпала с 8 на 9.
система вышла в 2021 году. Вряд ли она может сравниться с друпалом в многообразии функционала, гибкости и масштабе сообщества разработчиков, готовых оказать помощь.
Друпал окончательно переориентировался на кровавый энтерпрайз, поэтому - да, это больше не система для пользователей-мышекликеров.
Насколько было верно это решение - узнаем со временем.
Да нормально друпал подходит для мышекликеров. Просто у мышекликеров запросы пошли... Тут недавно пытались аналог авито накликать. Мышекликеры просто не понимают, что подобные системы не сделать из готовых кирпичиков и без кастомного кода там не обойтись. А то, что никто не написал готовый модуль под каждую хотелку каждого мышекликера - ну это уже проблемы их ожиданий, а не проблема друпала
Мышекликерам теперь нужна, как минимум, консоль с композером.
Ну если в commerce не лезть, то можно прекрасно обойтись без драша с композером. Хотя всё больше и больше контриба теперь имеют зависимости, которые подтягиваются только композером. Поэтому вынужден согласиться
Я мышекликер.
Композер очень удобен для накладывания патчей.
В 7ке это тоже приходилось и приходится делать много на крупных сайтах.
А перенос конфигураций - это вообще супер функция когда экспериментируешь на тестовом сайте а потом переносишь изменения на рабочий. Я просто забуду что делал если мышкой перекликивать буду.
Да перенос конфигураций он и мышкой возможен. Но я же модули новые ставлю - поэтому после переноса composer.json+composer.lock+ папки темы + папки конфигов будет банально быстрее в консоли запустить composer install + drush cim.
Страшна не столько консоль сколько страх перед ней владельцев 7ки и переход на ВДС.
Вообще мы немного в оффтоп пустились.
Человеку нужно работать с Драшем на Опен сервере - да там действительно есть проблемы.
нет там никаких проблем. В одной консоли опенсервера и композер прекрасно работает и драш и гит... И версии ПО легко меняются... Вобщем, нормальный инструмент. Проблемы скорее с виндой, которая требует куда как больше ресурсов для локальной разработки, чем линукс. Но если машина мощная, то openserver для большинства задач - норм.
Не по теме вопроса. Просто совет. Если вы внесете в переменную окружения путь к драшу, то вам не придется каждый раз писать этот путь, чтобы вызвать команду. Будете писать просто drush команда. Переменные окружения надо вносить в саму консоль опенсервера (открыть консоль, верху меню-гамбургер, далее Настройки - Окружение).
Например:
set PATH=C:\OSPanel\userdata\drush-11\vendor\drush\drush
где OSPanel - папка OpenServer.
А с другими модулями тестировали? Может этот баг только с этим конкретным модулем.
Активировать вручную не так уж плохо. Бывает, что с одним модулем тянется еще несколько. И далеко не все нужно активировать. А при автоматической активации драшем, возможно все сразу и активируется. А еще при активации модулей через драш не подтягиваются русские переводы модулей. Во всяком случае с семеркой и драш 8 такие проблемы были.
Делать простые операции через интерфейс - ничего тут плохого нет. Драш можно юзать, если ручная работа ощутимо дольше. А если нет, то какая разница?