Почему этот фасад Laravel не найден в некоторых средах?

У меня есть вызов фасада Laravel, который завершается ошибкой «класс не найден». Странно то, что он работает в моей среде разработки, но не в моей промежуточной среде. Это особенно странно, учитывая, что обе среды являются стандартными средами Laravel. (Dev — это домашняя машина. Staging была развернута Forge и управляется Forge).

Не было подобных проблем ни с dev, ни с staging.

Мне удалось обойти проблему с помощью помощника resolve(), но мне все еще нужно понять, почему обычное использование фасада не работает.

Вот код, который не работает в staging, но работает в dev:

$referrer = \Illuminate\Support\Facades\Url::previous();

Вот код, который работает в обеих средах:

$referrer = resolve('url')->previous();

Код находится во вспомогательном файле, у которого нет доступа к $this->app. У меня есть десятки помощников, и все они работают нормально, в том числе многие, использующие фасады.

Вот некоторые проверки, которые я сделал:

  • Владение файлом и права доступа выглядят нормально
  • Версии фреймворка Laravel идентичны (на composer.lock)
  • composer dump-autoload не повлияло

person DatsunBing    schedule 06.11.2018    source источник
comment
Возможно, это связано с небольшим несоответствием серверных сред? Вы пытались ссылаться на фасад с полным путем? например вендор\ларавел\фреймворк\src\иллюминировать......   -  person Ashley Brown    schedule 07.11.2018
comment
Может чувствительность к регистру? $referrer = \Illuminate\Support\Facades\URL::previous()   -  person adam    schedule 07.11.2018
comment
Спасибо @adam, это действительно была проблема. Хотите получить полный ответ?   -  person DatsunBing    schedule 07.11.2018
comment
@KimPrince ответил.   -  person adam    schedule 07.11.2018


Ответы (1)


Возможно, ваша среда чувствительна к регистру, попробуйте:

$referrer = \Illuminate\Support\Facades\URL::previous();
person adam    schedule 06.11.2018
comment
Классы в PHP чувствительны к регистру, так что это, вероятно, связано с автозагрузчиком композитора. - person Devon; 07.11.2018