Maksim (Ellrion)
там же ссылки на пакеты той же тематики с разным уровнем реализации
Konstantin
ога вижу, спасибо )
Konstantin
как ты это делаешь ? ))
Maksim (Ellrion)
как ты это делаешь ? ))
в процессе накопилось)
Konstantin
https://github.com/Kyslik/column-sortable
Konstantin
а ента штука тебе как ?
Maksim (Ellrion)
ну там только сортировка поиска нет
Konstantin
ну поиск я и сам реализую
Maksim (Ellrion)
но вообще раньше не видел эту либу
Konstantin
не шибко сложно
Konstantin
а вот сортировка вроде толковая
Konstantin
и простая, как три копейки
Daniil 👾
Можете помочь разобраться в этой статье? https://laravel.ru/posts/864 Тут на шаге 2 в __construct появляется вот такое Model $model. Что это вообще должно делать? Вроде бы не описано откуда повляется такое выражение и что делает
Konstantin
Это зависимость
Konstantin
Dependency Injection в помощь
Maksim (Ellrion)
на протяжении статьи там Model используеся как абстракное имя для некоторой модели
Konstantin
Пагады
Daniil 👾
так а что тебе непонятно? в конструкторе ожидается что первым параметром будет передан объект класса Model
ожидается, но в дальнейшем этого не происходит. Если я всё правильно понял
Konstantin
но он же берет его из контейнера
Konstantin
ибо больше не откуда
Konstantin
ожидается, но в дальнейшем этого не происходит. Если я всё правильно понял
она потом неявно вызываться будет скорее всего. Через какой-нить айдишник где-то инстанцироваться
Daniil 👾
то есть в конкретно этом примере это нигде не используется?
Maksim (Ellrion)
ожидается, но в дальнейшем этого не происходит. Если я всё правильно понял
что значит что этого не происходит? тот код в контроллере. контроллер создается автоматом и разрешает все зависимости
Maksim (Ellrion)
то есть в конкретно этом примере это нигде не используется?
как не используется когда там ниже строчка $this->model->create(...) (уже в методе контроллера)
Daniil 👾
мне почему-то кажется, что удали я Model $model ничего бы не изменилось в приведенном в статье примере
Konstantin
в методе store
Konstantin
короч. Модель подтягивается в виде зависимости вот и всё. В твоём случае передаешь туда Model $имяТвоейМодели
Konstantin
вот и усё
Daniil 👾
ну покажи где?
https://www.dropbox.com/s/xc7h7ulyl6f29px/2017-11-28_16-49-57.png?dl=0
Konstantin
этот принцип называется Dependency Injection
Konstantin
да простит меня одмен
Konstantin
метод store 5 строка
Konstantin
увидел ?
Konstantin
слух. А модели по дефолту в DIC лежат ?
Daniil 👾
что-то я еще больше запутался...)
Konstantin
что-то я еще больше запутался...)
https://www.youtube.com/watch?v=IKD2-MAkXyQ
Maksim (Ellrion)
слух. А модели по дефолту в DIC лежат ?
неа. там тупо пустой инстанс будет. это такая наркоманская тема что бы статик методов не вызывать.
Konstantin
неа. там тупо пустой инстанс будет. это такая наркоманская тема что бы статик методов не вызывать.
Лол, а если нам конкретная нужна ? Мы тип подменяем на то, что надо, так ?
Daniil 👾
я более менее понял что происходит на шаге 2. Но тогда не понятно почему работает вот это на шаге 1: $model = $this->model->create($request->all());
Konstantin
и как я говорил Model $myModel
Konstantin
блин, ща сам разбирать пойду ))
Konstantin
Макс. А действительно. Если инстанс пустой, то куда всё это закриэйтится ?
Konstantin
а, наплевать в общем-то
Konstantin
оно и не нужно
Konstantin
я понял
Maksim (Ellrion)
я более менее понял что происходит на шаге 2. Но тогда не понятно почему работает вот это на шаге 1: $model = $this->model->create($request->all());
там автор прокосячил просто с кодом. типо $make же у него больше нет так как валидация ушла в форм реквест. и раньше он от связи плясал. а теперь не смог и он забежал вперед)
Maksim (Ellrion)
посмтри в самый исходный код на том месте: $model = $make->model()->create($request->all());
Daniil 👾
это я видел
Daniil 👾
всё это и смутило, мол вот мы на первом шаге сократили контроллер и теперь он выглядит так и типо рабочий)
Maksim (Ellrion)
на самом деле автор наркоман и можно тупо делать Model::create(...) и нафиг не надо инжектить ее пустой инстанс через конструктор контроллера
Konstantin
типа SRP
Daniil 👾
вообще тот пример в статье имеет право на жизнь? Как там в комментах писали, не слишком ли он размазал код?
Maksim (Ellrion)
если автор мне скажет что он делает юнит тесты (именно юнит а не функциональные) контроллеров я очень удивлюсь. в пративном случае это дрочь
Daniil 👾
стоит ли придерживаться чего-то подобного?
Konstantin
определенно да, но с оговорками
Konstantin
валидацию выноси, но модели через контейнер не подрубай
Daniil 👾
я не так давно закончил свой первый проект, и, каюсь, большую часть работы выполняют контроллеры
Konstantin
лучше как Макс написал Model::create
Dmitry
через конструктор, больше гибкости по сути
Konstantin
через конструктор, больше гибкости по сути
черезмерная гибкость - тоже хреново
Maksim (Ellrion)
а если наследоваться будешь например? или точно не знаешь что за модель придет
там Model не базовая элоквент модель а конкретная модель из прилажухи с таким именем (за что кстати отдельно стоит в колено выстрелить ему) типо модель авто
Konstantin
через конструктор, больше гибкости по сути
будет у тебя потом куча неявных связей и придет к тебе вот такой вот Даниэль. И афигеет глядя в код
Daniil 👾
)))
Konstantin
это не аргумент :)
это очень даже аргумент. Код должен быть хорошо документирован и понятен любому дегенерату
Dmitry
будет у тебя потом куча неявных связей и придет к тебе вот такой вот Даниэль. И афигеет глядя в код
если вынести в конструктор базовую модель, код можно как то переиспользовать. С фасадами нет
Maksim (Ellrion)
это не аргумент :)
это - нет. а вот то что я выше написал очень даже аргумент
Konstantin
если вынести в конструктор базовую модель, код можно как то переиспользовать. С фасадами нет
а зачем тебе её как-то переиспользовать ? У тебя здесь в примере конкретное действие для конкретной модели.
Andrey
https://www.youtube.com/watch?v=IKD2-MAkXyQ
Отличный видос, кстате. Рекомендуется всем, кто не совсем в теме