Есть ли способ не читать .env при попадании на маршрут API? - PullRequest
0 голосов
/ 05 сентября 2018

В Laravel 5.5.42, когда я устанавливаю базовый маршрут API (api.php) и пытаюсь достичь этой конечной точки, кажется, что Laravel хочет читать из .ENV.

Для пример , когда я нажимаю на базовую точку маршрута / конечную точку API, Laravel пытается прочитать значения из файла .env (например, чтение значений для сервера состояний сеанса и т. Д.). Я не хочу, чтобы это делалось для определенных маршрутов API.

Зачем ему пытаться читать из .ENV для таких вещей, как сервер сеансов, когда это не нужно? Маршрут не скрывается за аутентификацией.

У меня такое чувство, что Laravel запускает некоторые внутренние работы по каждому запросу. Как я могу это сделать НЕ для простых маршрутов, подобных этому.

Например, вот мой маршрут:

Route::get('/something', function() {
    response('', 200)
        ->header('Content-Type', 'text/plain');
});

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Жизненный цикл запроса выглядит примерно так:

  • Hit public / index.php
  • Создать приложение
    • Регистрация событий / Журнал / Маршрутизация провайдеров услуг
  • Создание отдельных экземпляров консоли и ядер HTTP
  • Передать запрос в Ядро для обработки
  • Определить, было ли приложение загружено
    • Если нет, загрузите загрузчик

Здесь мы останавливаемся. На этом этапе, если приложение не было загружено, будет выполнено следующее:

$this->make(\Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables::class)->bootstrap($this) 

Функция bootstrap этого класса предназначена для чтения переменных окружения. Как сказал @Devon, если он кэшируется, он не будет читать, если нет, он будет читать отсюда.

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

php artisan config:cache

И это не будет читаться при каждом запросе. Тем не менее, я думаю, что есть несоответствие между session и env.

Ответ прямой корреляции нет. Файл .env - это просто список переменных, которые приложение может использовать повторно или использовать для настройки аспектов вашего приложения. Затраты на эту обработку очень незначительны (проверено на ~ 1 мс с ~ 500 строк env). Вы не должны беспокоиться об этом уровне микрооптимизации.

0 голосов
/ 05 сентября 2018

Данные конфигурации используются не только для сессий. Обычно .env читается для загрузки данных в различные конфигурационные файлы.

Кэшируйте конфигурацию, тогда файлы конфигурации и файл .env больше не будут считываться по запросам.

php artisan config:cache
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...