sphinxsearch-0.9 в mediawiki-1.32.0 ошибка - PullRequest
0 голосов
/ 15 января 2019
2019/01/14 12:04:51 [error] 21549#21549: *3558 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class SphinxMWSearch contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (SearchDatabase::doSearchTextInDB, SearchDatabase::doSearchTitleInDB) in /var/opt/www/extensions/SphinxSearch/SphinxMWSearch.php on line 15" while reading response header from upstream, client: 192.168.122.1, server: wiki.yuyizhi.org, request: "GET /index.php?title=Special:%E6%90%9C%E7%B4%A2&search=sphinx HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm/php5-fpm.sock:", host: "wiki.yuyizhi.org"

FastCGI отправлено в stderr: «PHP сообщение: PHP Неустранимая ошибка: класс SphinxMWSearch содержит 2 абстрактных метода и поэтому должен быть объявлен абстрактным или реализовать оставшиеся методы (SearchDatabase :: doSearchTextInDB, SearchDatabase :: doSearchTitleInDB) в / var / opt / www / extensions / SphinxSearch / SphinxMWSearch.php в строке 15 ", клиент: 192.168.122.1, сервер: wiki.abc.com, запрос:" GET /api.php?action=opensearch&search=bai&namespace=0 HTTP / 1.0 ", хост : "wiki.abc.com"

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Простое добавление этих двух пустых функций к SphinxMWSearch.php в соответствии с определением класса SphinxMWSearch, кажется, помогает. Это заставляет его перестать жаловаться и - насколько я могу судить - функция поиска работает нормально.

function doSearchTextInDB($term) {
}
function doSearchTitleInDB($term) {
}

Надеемся, что разработчики этого расширения скоро исправят ошибки.

0 голосов
/ 01 февраля 2019

Класс SearchDatabase, который расширяет SphinxSearch, был изменен с REL1_31 на REL1_32. Теперь требуется, чтобы вы определили doSearchTextInDB и doSearchTitleInDB методы.

См. REL1_31 https://doc.wikimedia.org/mediawiki-core/REL1_31/php/classSearchDatabase.html против REL1_32 https://doc.wikimedia.org/mediawiki-core/REL1_32/php/classSearchDatabase.html

Это как бы упоминается в примечаниях к патчу, если вы ищете Search в устаревшем состоянии (обратите внимание, что вместо этого это разрыв обратной совместимости) https://www.mediawiki.org/wiki/Release_notes/1.32#Compatibility:

Переопределение SearchEngine :: {searchText, searchTitle, searchArchiveTitle} в расширяющихся классах не рекомендуется. Вместо этого расширьте связанные методы doSearch *.

Если вы похожи на меня и вам неудобно исправлять расширение самостоятельно, вам придется подождать, пока один из участников расширения обновит расширение для работы с REL1_32. До этого вам придется оставаться на REL1_31, если вы хотите использовать расширение.

...