Declaration of ... must be compatible with (ненавистный PHP8)

Metal Messiah
На сайте с 01.08.2010
Offline
163
221

Доброго времени суток и приятного похмелья 😀

В связи с вынужденным переходом на PHP 8 вылазят разные бока, связанные с тем что разработчики PHP8 намутили глупостей на свое усмотрение, не подумав чем это грозит конечным пользователям. Очевидное решение запустить 2 разных FPM с PHP7 и 8 я умею, но не предлагать, вопрос не об этом.

Ошибка следующая:

PHP Fatal error:  Declaration of BirknerAlex\XMPPHP\BOSH::connect($server, $wait = '1', $session = false) must be compatible with BirknerAlex\XMPPHP\XMLStream::connect($timeout = 30, $persistent = false, $sendinit = true) in XMPPHP/BOSH.php on line 52

Сразу скажу что я сторонник процедурного стиля разработки и всегда его придерживаюсь. Работаю с классами либо вынужденно когда допиливаю чужой код, либо если нужно обеспечить подгрузку данных из разных форматов файлов используя одинаковый код (типа по расширению загружается нужный класс, далее вызывается функция, аналогично загрузить класс Wordpress / Blogger / Livejournal и вызвать методы login() и addpost() для кросспостинга, итд).

Что я сейчас вижу? Есть библиотека на PHP для работы с XMPP (https://github.com/BirknerAlex/XMPPHP).

Создается new \BirknerAlex\XMPPHP\XMPP и первым делом вызывается метод connect();

class XMPP extends XMLStream

В XMLStream объявление следующее:

public function connect($timeout = 30, $persistent = false, $sendinit = true)
При этом в class BOSH extends XMPP  объявлено следующее:
public function connect($server, $wait = '1', $session = false)
Мне уже самому интересно как оно работало все эти годы, т.к. параметры абсолютно несовместимы друг с другом, но это работало. Как посоветуете решать эту проблему? Переписывать все несовместимые функции, т.е. делать свой форк с форка этой библиотеки? (там форк форка третий раз уже, мой будет четвертым). Или есть какое-то более простое решение как заставить PHP8 работать как PHP7 в такой ситуации? Настройка в php.ini какая-то может быть, о которой я не знаю?




GitHub - BirknerAlex/XMPPHP: Original fork from svn://netflint.net/xmpphp
GitHub - BirknerAlex/XMPPHP: Original fork from svn://netflint.net/xmpphp
  • BirknerAlex
  • github.com
XMPPHP is a fork of svn://netflint.net/xmpphp. This is an elegant PHP library for XMPP (aka Jabber, Google Talk, etc). Author: Nathan Fritz, jabber id: fritzy [at] netflint.net Co-Author: Stephan Wentz, jabber id: stephan [at] wentz.it Maintainer of this fork: Alexander Birkner Installation is a quick and easy 2 steps process: Install XMPPHP...
anonymous, думай что говоришь и не забывай подписать отзыв :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий