Laravel middleware устанавливает атрибут $ request, влияет ли это на производительность

В одном из своих промежуточных программ я использовал что-то вроде этого

    $user = [ 
    'name' => 'noob',
    'phone' => '87548154'
   ]; /* which actually comes from redis cache */


    $request->attributes->set('user', $user);

и в контроллере я использую его как

$request->get('user')['name'] 

ИЛИ ЖЕ

$request->get('user')['phone'] 

Поскольку это кажется очень гибким, я хотел бы добавить больше данных в массив $ user. В документации laravel написано выше, что метод get () класса Request:

 * Gets a "parameter" value from any bag.
 * This method is mainly useful for libraries that want to provide some flexibility. If you don't need the
 * flexibility in controllers, it is better to explicitly get request parameters from the appropriate
 * public property instead (attributes, query, request).
 * Order of precedence: PATH (routing placeholders or custom attributes), GET, BODY

Мой вопрос: будет ли это хорошая идея? потому что наиболее часто используемые данные уже прикреплены к промежуточному программному обеспечению. Чтобы мне не приходилось снова и снова писать лишние коды в методах контроллера. Повлияет ли это на производительность сервера с высоким трафиком?

почему бы не поделиться им со всеми видами внутри AppServiceProvider?

GabMic 15.03.2018 10:55

Какая цель? Вы можете использовать смотреть композитора для обмена данными с представлениями.

Kyslik 15.03.2018 11:19

вы делаете как b = a и c =b, чтобы получить a в c, где вы можете получить прямой доступ к c = a. Это определенно, но не существенно повлияет на производительность. Вы можете использовать глобальные переменные в config.

iamab.in 15.03.2018 11:49

это проект с просветом .. нет просмотров

Noob Coder 15.03.2018 12:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
4
701
1

Ответы 1

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

\Auth::user()

Это позволяет вам никогда не отправлять его, когда в нем нет необходимости, и по-прежнему использовать его из любого места (контроллеры, модели, лезвия или что-то еще).

Затем, чтобы получить доступ к вашим свойствам:

\Auth::user()->phone

и так далее...

Еще лучше, IMHO, auth()->user();, где auth() - это «глобальная» функция и тоже принимает параметр ($guard).

Kyslik 15.03.2018 11:11

Это не уловка, посмотрите этот github.com/laravel/framework/blob/…, получайте удовольствие!

Kyslik 15.03.2018 13:35

Другие вопросы по теме