Maksim (Ellrion)
Maksim (Ellrion)
там же ссылки на пакеты той же тематики с разным уровнем реализации
Konstantin
ога вижу, спасибо )
Konstantin
как ты это делаешь ? ))
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)
Konstantin
Maksim (Ellrion)
на протяжении статьи там Model используеся как абстракное имя для некоторой модели
Konstantin
Пагады
Daniil 👾
Konstantin
но он же берет его из контейнера
Konstantin
ибо больше не откуда
Daniil 👾
то есть в конкретно этом примере это нигде не используется?
Daniil 👾
мне почему-то кажется, что удали я Model $model ничего бы не изменилось в приведенном в статье примере
Daniil 👾
Konstantin
Konstantin
в методе store
Maksim (Ellrion)
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
Konstantin
слух. А модели по дефолту в DIC лежат ?
Daniil 👾
что-то я еще больше запутался...)
Konstantin
Daniil 👾
я более менее понял что происходит на шаге 2. Но тогда не понятно почему работает вот это на шаге 1:
$model = $this->model->create($request->all());
Konstantin
и как я говорил Model $myModel
Konstantin
блин, ща сам разбирать пойду ))
Konstantin
Макс. А действительно. Если инстанс пустой, то куда всё это закриэйтится ?
Konstantin
а, наплевать в общем-то
Konstantin
оно и не нужно
Konstantin
я понял
Daniil 👾
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
Dmitry
через конструктор, больше гибкости по сути
Konstantin
Konstantin
Daniil 👾
)))
Dmitry
Konstantin
это не аргумент :)
это очень даже аргумент. Код должен быть хорошо документирован и понятен любому дегенерату
Dmitry
Maksim (Ellrion)
это не аргумент :)
это - нет. а вот то что я выше написал очень даже аргумент
Maksim (Ellrion)