Найти тему

Drupal 9 — Class ReCaptcha not found

Один из посетителей смог написать мне сообщение о том, что на сайте не работает контактная форма. За что ему большое спасибо. Открываю браузер в режиме инкогнито, пишу сам себе, — действительно, ошибка.

В логах вижу:

Error: Class "ReCaptcha\ReCaptcha" not found in C:\web\drupal8\modules\recaptcha\recaptcha.module on line 162

Пошерстил форумы и понял, ошибка распространённая. По каким-то причинам при установке модуля Recaptcha не скачивается зависимая гугловая библиотека. Composer её в упор не видит.

Возможно, проблема появилась с одним из обновлений. Кривой модуль, кривой, не у всех хочет нормально устанавливаться. Ну нет так нет. Один из участников форума дал наводку на решение проблемы. Ludwig — вот что нам поможет. Этот модуль меня спасает уже второй раз.

Drupal 9 — модуль Ludwig, ручная альтернатива Composer

Сносим ReCaptcha скачиваем снова, но не устанавливаем.

https://www.drupal.org/project/recaptcha

-2

Теперь нужно подружить модули Recaptcha и ludwig:

https://www.drupal.org/project/recaptcha/issues/3152474

Создаём в модуле файл ludwig.json:

{
"require": {
"google/recaptcha": {
"version": "v1.2.4",
"url": "https://github.com/google/recaptcha/archive/1.2.4.zip" }
}
}
-3

Отчёты → Пакеты (/admin/reports/packages). И модуль Ludwig подсасывает нам все необходимые PHP пакеты и их зависимости.

-4

Ludwig нашёл гугловский модуль google/recaptcha на гитхабе и скачал в папку модуля. Можно это и вручную сделать, если очень захотеть. Я не захотел.

-5

Теперь включаем Recaptcha на сайте.

-6

Потом настраиваем как обычно, понадобятся токены. Но здесь статья не про настройку, а про исправление ошибки. Теперь форма с Recaptcha отрабатывает без проблем.

Источник:

Drupal 9 — Class ReCaptcha\ReCaptcha not found | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.