fig/link-util не совместим с psr/link
Я установил свежий Symfony v5.3, ApiPlatform v2.6.6. Когда я вхожу в
/api
url Я получаю эту ошибку:
Fatal error: Declaration of Fig\Link\Link::withHref(Stringable|string $href):
Symfony\Component\ErrorHandler\DebugClassLoader must be compatible with
Psr\Link\EvolvableLinkInterface::withHref($href) in
/api-platform-course/vendor/fig/link-util/src/Link.php on line 22
Я открыл этот файл в редакторе:
vendor/fig/link-util/src/EvolvableLinkTrait.php
и он реализует этот интерфейс:
Psr\Link\EvolvableLinkInterface
. Кажется, эта черта неправильно реализует методы. Например, метод интерфейса таков:
public function withHref(string|\Stringable $href);
EvolvableLinkTrait::withHref
реализация метода такова:
public function withHref(\Stringable|string $href): static
Как видите, в исходном методе нет ключевого слова, а в реализации есть. Я удалил
static
Подсказка типа возвращаемого значения из реализации, но я все еще получаю ту же ошибку. Затем я удалил все подсказки типов из реализации, и ошибка исчезла. Моя текущая реализация такова:
public function withHref($href)
По этому методу все нормально. У других методов тоже такая же проблема, и я исправил ее тем же способом (
withRel()
,
withoutRel()
,
withAttribute()
,
withoutAttribute()
методы).
Я использую сервер PHP 8.0 и Nginx. Что вы предлагаете для решения этой проблемы? Должен ли я изменить версию пакета или более низкую версию Symfony или что-то еще? Спасибо.
1 ответ
Это выглядит какfig/link-util
может потребоваться обновить ограничения пакета.
fig/link-util:1.2.0
намекает на тип, что означает, что он должен иметь"psr/link": "^2.0.0"
как обязательный пакет нет"psr/link": "^1.1.0 | ^2.0.0"
в нем также говорится, что он обеспечивает реализацию psr/link 1.0, но здесь должно быть указано 2.0.