Добавить в корзинуПозвонить
Найти в Дзене

Drupal — Search API конфликтует с Snowball Stemmer

5 октября вышла новая версия модуля Search API 1.30 для Drupal. После установки обновления сайт перестал работать. Оказалось, новый модуль поиска конфликтует с модулем морфологического поиска Snowball Stemmer. Ошибки: PHP Fatal error: Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::getLanguageManager() must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::getLanguageManager(): Drupal\Core\Language\LanguageManagerInterface in /var/www/html/web/modules/contrib/snowball_stemmer/src/Plugin/search_api/processor/SnowballStemmer.php on line 102
PHP Fatal error: Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager) must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager): Drupal\search_api\Plugin\search_api\process

5 октября вышла новая версия модуля Search API 1.30 для Drupal. После установки обновления сайт перестал работать. Оказалось, новый модуль поиска конфликтует с модулем морфологического поиска Snowball Stemmer.

Ошибки:

PHP Fatal error: Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::getLanguageManager() must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::getLanguageManager(): Drupal\Core\Language\LanguageManagerInterface in /var/www/html/web/modules/contrib/snowball_stemmer/src/Plugin/search_api/processor/SnowballStemmer.php on line 102

PHP Fatal error: Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager) must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager): Drupal\search_api\Plugin\search_api\processor\Stemmer in /var/www/html/web/modules/contrib/snowball_stemmer/src/Plugin/search_api/processor/SnowballStemmer.php on line 114

https://www.drupal.org/project/snowball_stemmer/issues/3394257

Суток не прошло, как наш коллега выкатил патч для Snowball Stemmer:

https://www.drupal.org/files/issues/2023-10-16/snowball_stemmer-3394257-2.patch

Обновление Search API успешно устанавливается, но update.php не запускается, да и вообще сайт не работает.

Для оперативного ручного ремонта после обновления Search API нужно отредактировать файл composer.json, установив зависимость от версии search_api 1.30:

"drupal/search_api": "^1.30"
-2

Отредактировать файл /src/Plugin/search_api/processor/SnowballStemmer.php, удалив конфликтующие функции getLanguageManager() и setLanguageManager():

-3

После этого запустить update.php, чтобы закончить установку обновления Search API.

-4
-5

После этого всё начинает работать, включая морфологический поиск.

-6

Источник:

Drupal — Search API конфликтует с Snowball Stemmer | internet-lab.ru

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

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