Почему НЕ выбрасывается ошибка «Declaration of * should be compatible with * ...»? Есть Composer-пакет, который "расширяет" функциональность другого пакета. Большая часть кода честно "позаимствована" у библиотеки DomCrawler, я лишь изменил структуру и добавил пару методов. Класс Tweezers\Crawler наследуется от DiDom\Document. Проблема возникла с методом find, а точнее с количеством аргументов в нем: у Documentих 3, а в Crawler - 2. Соответственно должно выбрасываться исключение Declaration of * should be ..., но этого не происходит: тесты проходят успешно. Подключил пакет в новой папке, немного поигрался - все ок. Но при подключении к моему проекту выбрасывает это исключение. Почему так происходит?

21 Авг 2019 в 07:06
161 +1
0
Ответы
1

Скорее всего, проблема заключается в том, что в вашем проекте уже используется другая версия пакета, в которой метод find имеет другую сигнатуру. Когда Composer пытается подключить ваш пакет, он видит, что метод find в классе Tweezers\Crawler не соответствует методу find в классе DiDom\Document, и пытается сгенерировать ошибку "Declaration of should be compatible with ...". Однако, если в вашем проекте уже загружена другая версия пакета, то Composer может проигнорировать эту ошибку и продолжить работу.

Для решения этой проблемы вам следует убедиться, что в вашем проекте используется правильная версия пакета, которая совместима с вашим расширением. Попробуйте обновить зависимости в вашем проекте и убедитесь, что версия пакета совпадает с той, которую вы использовали для разработки вашего расширения. Если проблема сохраняется, попробуйте явно указать Composer'у, какую версию пакета использовать в вашем проекте.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 852 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир