Задать вопрос
@barma001

Фасады, хелперы, внедрение зависимостей — что где использовать?

Приветствую,

Если ли какая-то устоявшаяся практика по данному вопросу ?
Например, внедрение зависимостей только в контролерах а фасады только в представлениях и моделях? По поводу хелперов я вообще что-то запутался. Для меня хелперы всегда ассоциировались с неким подобием самодостаточных функций а тут как то все намешано и в чем тайный смысл вот этого я чето не пойму.

return View::make('profile');
return view('profile');


Ну и холиварный вопрос вопрос - зачем вообще вводить столько возможностей получения одного итого же результата? Помимо "удобства" есть еще какой-то тайный смысл ?
  • Вопрос задан
  • 232 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
New_Horizons
@New_Horizons
Бред:
Не думаю. Просто удобство. DI можно использовать не только в контроллерах, а вообще в любых классах, при условии что этот класс разрешается через контейнер (ну чтобы ручками зависимости не разрешать).
https://laravel.com/docs/7.x/container
Ответ написан
Maksclub
@Maksclub
maksfedorov.ru
Помимо "удобства" есть еще какой-то тайный смысл ?
Новичкам очень удобно и просто, зачем сложно как хлоп и сделал

Для меня хелперы всегда ассоциировались с
Как сказал однажды Аршавин (поплатившись своей карьерой из-за этих слов) "Ваши ожидания — это ваши проблемы" :)

Да, все покрыто этой магией, по сути в Ларавел реализовали свой язык, из-за чего он стал понятным и удобным для толп "программистов" и для быстрого штампования однообразной логики

В больших проектах выбор падает все же на DI:
Stop Using Facades
https://blog.amezmo.com/replacing-your-facades-wit...

Вот еще немного особенностей от Кирилла Несмеянова с таймингом:
https://youtu.be/QHLZohh7Tkw?t=2203
Ответ написан
Alex_Wells
@Alex_Wells
PHP/Kotlin
Фасады, хелперы, app(Dep::class), resolve(Dep::class) и подобные вещи - это ок ровно до того момента, пока ты не захочешь отделить логику от фреймворка (что бы мигрировать на другой фреймворк или другой язык программирования).

Юнит-тестить без привязки к контейнеру - тоже сильно удобней.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы