Anton
Сервис это часть модели может? Доменный сервис
Vitaliy
ребята, как создать связь категорий с товаром, тоесть есть у меня hasMany всех категорий и каждая из них может иметь товары как оформить такую связь?
Anton
документация к laravel
ткни пальцем. ссылку
Dmitriy
документация к laravel
нет там такого
Anton
в книге по DDD норм так описывают ограниченные контексты, доменные службы
Daniil 👾
https://laravel.com/docs/5.6/container и чуть выше провайдеры
Alexander
Просто разные весовые категории: Yii - это массовый RAD фреймворк. Там важна простота и скорость. Ради этого можно забить на архитектуру. Он живёт почти вообще без SOLID и прочих штук. И там почти никто не знает про DIC, конструкторы, приватные поля, PSR и шаблонизаторы. Symfony и Zend - это, наоборот, самые навороченные энтерпрайз-решения для серьёзных проектов, где абсолютно всё сделано по SOLID и прочим принципам и лучшим архитектурным практикам. Laravel - промежуточный вариант, построенный на компонентах Symfony и своих с добавлением собственных упрощений. Там можно работать как в RAD-режиме с фасадами и CRUD-ами для простых проектов, так и как угодно заморачиваться для сложных. Поэтому в массовых Yii и Laravel в комплекте идёт простая ActiveRecord, а в специфичных уже какой-либо DataMapper. Но никто не мешает при желании подключить либо Doctrine в Laravel, либо Eloquent или Propel в Symfony.
спасибо за ответ
Anton
где-то в книгах фаулера
было бы интересно почитать
Anton
https://laravel.com/docs/5.6/container и чуть выше провайдеры
там не говорится о том что надо, там рассказывается о возможностях контейнера.
Dmitriy
было бы интересно почитать
вообще его всего бы нужно читать
Anton
вообще его всего бы нужно читать
да я то читаю на сайте его статьи. Но я не видел чтобы там было сказано что если у тебя AR, то вся логика в сервисах
Daniil 👾
там не говорится о том что надо, там рассказывается о возможностях контейнера.
"A deep understanding of the Laravel service container is essential to building a powerful, large application, as well as for contributing to the Laravel core itself." Цитата явно намекает, что это важно для любого приложения
SarcasmIO
id не AI :D
Dmitry
что-то мне кажется что в моделях логики быть не должно. Для чего тогда сервисы?
Логика приложения - в сервисах приложения. Логика модели - в сервисах и сущностях модели.
Anton
сервисы это не только модели, лол. Сервис контейнер не только для моделей
Anton
ар не ар. все равно бизнес логика там не должна быть
в DDD вообще бизнес логика только в моделях
Dmitriy
Просто разные весовые категории: Yii - это массовый RAD фреймворк. Там важна простота и скорость. Ради этого можно забить на архитектуру. Он живёт почти вообще без SOLID и прочих штук. И там почти никто не знает про DIC, конструкторы, приватные поля, PSR и шаблонизаторы. Symfony и Zend - это, наоборот, самые навороченные энтерпрайз-решения для серьёзных проектов, где абсолютно всё сделано по SOLID и прочим принципам и лучшим архитектурным практикам. Laravel - промежуточный вариант, построенный на компонентах Symfony и своих с добавлением собственных упрощений. Там можно работать как в RAD-режиме с фасадами и CRUD-ами для простых проектов, так и как угодно заморачиваться для сложных. Поэтому в массовых Yii и Laravel в комплекте идёт простая ActiveRecord, а в специфичных уже какой-либо DataMapper. Но никто не мешает при желании подключить либо Doctrine в Laravel, либо Eloquent или Propel в Symfony.
забавно читать человека который вроде пытался делать на yii ddd
Anton
вернее в сущностях
Anton
а доменная модель это сущности и объекты-значения + доменные службы
Anonymous
id не AI :D
А где ai
SarcasmIO
а что есть логика, а что есть поведение?)
Vitaliy
почитать доку
такс, ну я в доке по связях шас, у меня есть запись $this->descendants(); в методе связи будущей. результатом есть hasMany, как дальше не пойму
invariance
Логика приложения - в сервисах приложения. Логика модели - в сервисах и сущностях модели.
где заканчивается логика приложения и начинается логика модели?
Anton
а что есть логика приложения?
invariance
Без понятия, я знаю что такое бизнес логика
Daniil 👾
вот это спор) да вчем угодно можно писать логику, хоть в контроллере)) лишь бы не стыдно было и заказчик работу принял :D я выбрал сервисы как место для логики и пока мой выбор меня не подвёл ни разу
invariance
а логика модели и логика приложение - что то новое, интересно
Anton
если говорить о том что говорит фаулер, вернон и эрик то доменная модель вообще не должна ничего знать о том что в приложении, и какой там фреймворк используется. Это в идеале
Anton
в реальности хз как к такому прийти
Dmitriy
в реальности хз как к такому прийти
пср как раз помогает в этом
Anton
PSR?
Anton
причем он здесь
Dmitriy
PSR?
еп
Alexander
хотелось бы какие-то примеры этой реальности
Dmitriy
причем он здесь
стандартный логер, контейнер ...
Alexander
а то все торчат про solid а по факту дай бог чтобы dry
Anton
https://github.com/dddinphp/last-wishes/tree/master/src/Lw вот тут более менее постарались всю бизнес логику от приложения и инфраструктуры отделить
Anton
обмазались портами и адаптерами
Anton
Anton
ты вообще должен отстраниться от хранилищ, AR, DM в DDD
Anton
но это реально жесть. в 90% проектов DDD не нужен
Dmitriy
этого не достаточно
запили интерфейсы тогда . и отдавай их
Anton
я щас пытаюсь на симфони + doctrine что то в стиле DDD сделать
Anton
ппц, напряги
Anton
стандартный логер, контейнер ...
вот пример того как они от guzzle отвязываются
Anton
https://github.com/dddinphp/last-wishes/blob/47cf7c5950734d8d90cd405432d5d20b2c897df3/src/Lw/Infrastructure/Service/HttpUserAdapter.php
Anton
и там интерфейс адаптера
Anton
много интересного в этом проекте
\/
https://github.com/andreskrey/readability.php
Vitaliy
Ребят, как обявить связь Все уровни подкатегорий и их товары Хоть что это за отношение получается?
Dmitry
ар не ар. все равно бизнес логика там не должна быть
Принцип один и крайне прост: каждый должен заниматься своим делом. Логика сущности - в сущности. Логика проверки значения - в объекте значения. Логика взаимодействия сущностей для какого-то юзкейса приложения - в объекте юзкейса. Логика загрузки файлов - в загрузчике файлов. Логика отправки уведомлений - в объекте-рассыльщике. Логика генерации токенов - в генераторе токенов. А использовать AR только как набор полей вроде ассоциативного массива со связями и методом save() - это уже другой анемичный подход.
Dmitry
забавно читать человека который вроде пытался делать на yii ddd
Там как раз и получилось логику по уровням и ответственностям разложить. А отвязку от инфраструктуры через порты и адаптеры можно и на Wordpress сделать. Было бы желание.
Anton
http://samolisov.blogspot.ru/2012/10/anemic-domain-model.html
Anton
Анемичная модель предметной области устроена иначе. Классы объектов предметной области лишены поведения. Они имеют только конструкторы и методы доступа к данным. Единственное, что они реализуют - это отношения с другими объектами.
Anton
если не упарываться во все эти дебри, то вот советую https://streamacon.com/video/laracon-us-2017/day-2-jeffrey-way
Anton
полезный видос с ларакона. рассказывает как упрощать и структурировать код
Anton
только в россии через проксю, походу РКН забанил сайт
Vitaliy
Категории - nested set. Товар - категория - many-to-many
через nestedsets я получаю все подкатегории, тоесть запрос hasMany, а как дальше то связь писать(уже товар получать) у меня задача именно связь получить, такое условие админки
Anton
вообще советую новичкам посмотреть jeffrey way видосы, от глупых ошибок поможет избавиться. Заодно половина детских вопросов отпадет
AluV (დანიილ)
jeffrey на Youtube обитает ?
AluV (დანიილ)
А, это Laracasts ?
AluV (დანიილ)
Я вот только сел изучать Laravel и что то не найду даже нормального урока как сделать регистрацию авторизацию с помощью Passport
AluV (დანიილ)
везде только обрывки информации
Maksim
Laracast
AluV (დანიილ)
они платные
Maksim
Я обычно ищу несколько уроков и вникаю в суть. Так же полезно исходный код смотреть.
Maksim
они платные
15 баксов всего
Maksim
Сиги куришь, синьку пьёшь? Сэкономь на них и купи подписку.
Timofey
Всем привет, кто работал с real-time приложениями на Laravel или сродными, сколько одновременных подключений может безболезенно выдержать сервер на пыхе?
AluV (დანიილ)
Если подключить reactPHP то очень много