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