15 октября вышла новая версия модуля 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"
Отредактировать файл /src/Plugin/search_api/processor/SnowballStemmer.php, удалив конфликтующие функции getLanguageManager() и setLanguageManager():
После этого запустить update.php, чтобы закончить установку обновления Search API.
После этого всё начинает работать, включая морфологический поиск.