У меня есть вызов фасада Laravel, который завершается с ошибкой «класс не найден». Странно то, что это работает в моей среде разработки, но не в моей промежуточной среде. Это особенно странно, учитывая, что обе среды являются стандартными средами Laravel. (Dev - это домашняя машина. Постановка была развернута Forge и управляется Forge).
Не было похожих проблем ни с dev, ни с staging.
Мне удалось обойти проблему с помощью помощника resolve()
, но мне все еще нужно понять, почему обычное использование фасада не работает.
Вот код, который не проходит в стадии подготовки, но работает в dev:
$referrer = \Illuminate\Support\Facades\Url::previous();
Вот код, который работает в обеих средах:
$referrer = resolve('url')->previous();
Код находится во вспомогательном файле, который не имеет доступа к $this->app
. У меня там десятки помощников, и все они отлично работают, в том числе многие, которые используют фасады.
Вот некоторые проверки, которые я сделал:
- Владение файлами и разрешения выглядят отлично
- Версии фреймворка Laravel идентичны (для
composer.lock
)
composer dump-autoload
не имел никакого эффекта