
Artur
15.02.2017
12:34:18
Кто нибудь реализовывал такое приложение, как ТС из этого топика http://www.yiiframework.ru/forum/viewtopic.php?f=19&t=22322 ?
сейчас нужно так же сделать, пока не понимаю с какой стороны подойти

Mr.
15.02.2017
12:35:21
я точно не скажу, но мне кажется, что так сейчас работают все популярные js framework'и
берут json данные с сервера, и на клиенте строят виды

Google

Aleksandr
15.02.2017
12:35:48
делаешь апи, делаешь js-клиент. подойди с любой стороны)

Mr.
15.02.2017
12:36:07
можешь взять готовенький rest от yii, там уже 90% backend'а сделано за тебя

Андрей
15.02.2017
12:37:22
Проблема не в том чтобы на сервере отдавать. Проблема сделать front на современном js-фреймворке ) Технологий много. А на сервере, хоть json, хоть полноценный REST, хоть graphql
но судя по вопросу, с js-фреймворками ты совершенно не знаком. Удачного секса )

Mr.
15.02.2017
12:39:01
Artur, бери Angular2, по нему много в интернете гайдов и доков. Если руки прямые, то никаких проблем с освоением не должно быть

Aleksandr
15.02.2017
12:40:21
заодно ts подучишь)

Artur
15.02.2017
12:40:44
это понял, хочу сделать максимально расширяемый продукт.
сейчас проект работает на yii2 basic. Проект, 1ый год, переходил из рук в руки. Вся логика в моделях, что не хорошо. и сейчас с этим много проблем.
как и куда можно вынести логику именно в backend приложении? Те же связи, транзакции?
я ебусь только с бэкендом )
с js ебется другой )

Aleksandr
15.02.2017
12:41:18
так что тогда из той темы заинтересовало?

Андрей
15.02.2017
12:41:35
На клиенте все как было так и будет. Только данные отдаются не в готовом html, а в виде json данных. А на клиенте по этим данным рисуется весь html

Artur
15.02.2017
12:41:57

Google

Aleksandr
15.02.2017
12:42:11
не, давай конкретнее
что хочешь?

Artur
15.02.2017
12:42:19
с клиентом понятно. тут вопрос архитектуры бекенда

Андрей
15.02.2017
12:42:42

Artur
15.02.2017
12:43:00
как было мне не надо ) слишком толстые модели

Андрей
15.02.2017
12:43:29
почитай про graphql

Aleksandr
15.02.2017
12:44:01
да не надо ему вообще это.
а что надо не понятно

Artur
15.02.2017
12:46:05
(

Anatoly
15.02.2017
12:49:39

Artur
15.02.2017
12:50:21
короче, надо сделать сервак чисто для АПИ.
будут модели для таблиц из базы, будут active контроллеры (рест апи).
куда и как можно вынести бизнес логику приложения?

Aleksandr
15.02.2017
12:51:13
где хранить бизнес логику? в сервисах
что в обычном приложении, что в рест

Artur
15.02.2017
12:52:57
Как организовать эти сервисы? просто класс, в которых находится вся логика? или что?
может есть примеры реализаций сервисов?

Aleksandr
15.02.2017
12:55:07
условно говоря да. бизнес логику, которая завязана на состоянии одной модели, оставляем в модели (типа changeStatus, addOrderItem). Бизнес-логику касающуюся нескольких моделей и инфраструктурных вещей (типа отправить письма, уведомления, итд) - в сервисы

Альберт
15.02.2017
12:55:47
мы храним так же в моделях, просто на одну сущность, например пользователь, у нас несколько моделей
одна модель отвечает за работу с БД, другая за изменения аватара, принимает на вход модель для работы с бд и объект для работы с хранилищем

Aleksandr
15.02.2017
12:58:10
модель должна хранить свое состояние и иметь возможность изменять себя. вся остальная бизнес-логика - в сервисы

Альберт
15.02.2017
12:59:13
Это из симфони пришло) Ну тут игра терминами идет

Google

Альберт
15.02.2017
12:59:33
Я наверно то же самое имею ввиду

Aleksandr
15.02.2017
13:00:00
в симфони тоже такого нет. есть модели, есть сервисы

Альберт
15.02.2017
13:01:32
хм, могу ошибаться, но похожие слова я слышал от гуру(вроде как) в симфони)

Aleksandr
15.02.2017
13:02:07
похожие - какие?
в симфони вообще модели нет

Альберт
15.02.2017
13:02:20
модель должна хранить свое состояние и иметь возможность изменять себя. вся остальная бизнес-логика - в сервисы

Aleksandr
15.02.2017
13:02:49
в книжках пишут

Nurik
15.02.2017
13:02:59
Просто в классы запихать тоже не айс получается. Нужны еще как минимум command bus и еще какое-нибудь подобие service layer из слоистой архитектуры.

Aleksandr
15.02.2017
13:03:39
service layer - это не слоистая архитектура. просто слой любой хорошей архитектуры
слоистая - это более широкая парадигма

Aleksandr
15.02.2017
13:05:04
но в целом да, типа того

Nurik
15.02.2017
13:06:51

Aleksandr
15.02.2017
13:07:42
ну так даже в обычной yii-лапше есть слои - контроллер, вьюшки, моделе-сервисо-хелперы, они же бд-адаптеры

Nurik
15.02.2017
13:12:59

Aleksandr
15.02.2017
13:14:20
не совсем понял мысль. возможно ты прав, но для меня это набор классов, думал ты над ними или нет)

Dominik_35
15.02.2017
13:21:40
здраствуйте

Альберт
15.02.2017
13:22:32

Dominik_35
15.02.2017
13:22:33
а есть у когото опыт разработки личного кабинета ?

Google

Aleksandr
15.02.2017
13:23:08

Dominik_35
15.02.2017
13:48:33
http://web.archive.org/web/20081007231834/http://www.yiiframework.com/

Альберт
15.02.2017
14:15:14
Ого
Скоро 10 лет будет

Dominik_35
15.02.2017
14:15:53
ага
но есть и древнее
cakephp

Альберт
15.02.2017
14:16:47
Так это же другой фреймворк)

Dominik_35
15.02.2017
14:17:08
да другой

Dmitriy
15.02.2017
14:17:40

Admin
ERROR: S client not available

Dmitriy
15.02.2017
14:37:31

Dominik_35
15.02.2017
14:40:53

Aleksandr
15.02.2017
14:45:10
@ExileeD сразу оговорюсь по терминологии - под модулем я имею в виду термин, используемый в книгах по программированию в общем - логически выделяемый пакет схожего функционала.
бандлы в симфони - это обычно реализация модуля в контексте симфони, как модуль yii - реализация модуля в контексте yii. Как должно быть - должен быть независимый модуль + бридж в любом виде к конкретному фреймворку - фреймворкозависимые адаптеры, экшны и прочая шелуха (не бизнес-логика). Такие реализации есть например в виде какой-либо независимой либы (Doctrine) плюс например бандла для симфони (DoctrineBundle).
Что в контексте выше сказанного такое common, frontend, backend? ничего.
Зависимость от CoreBundle? зависеть должны адаптеры модуля к фреймворку - это нормально.

Dmitriy
15.02.2017
15:13:52

Aleksandr
15.02.2017
15:16:14

Dmitriy
15.02.2017
15:30:16

Aleksandr
15.02.2017
15:32:00
ddd, es, cqrs - вот такое люблю. можно книжки почитать. на yii2 не пишу, но реализация архитектуры от фреймворков не зависит. если есть более конкретные вопросы, я за.

Nurik
15.02.2017
15:39:35

Aleksandr
15.02.2017
15:39:50
domain

Google

Mr.
15.02.2017
15:40:15
расшифруйте аббревиатуры, пожалуйста
для совсем нуба, не знающего теорию :)

Aleksandr
15.02.2017
15:41:13
domain driven design, event sourcing, command query responsibility segregation
если не путаю. гуглятся на раз-два

Mr.
15.02.2017
15:42:10
спасибо, обязательно погуглю и почитаю

Aleksandr
15.02.2017
15:42:17
начинать изучение с первого - волосы сразу станут шелковистыми

Mr.
15.02.2017
15:42:27
ибо знания архитектуры ограничиваются практическими навыками

Dmitriy
15.02.2017
15:43:44

Aleksandr
15.02.2017
15:44:24
где тут? в yii2? в реализации модуля?

Dmitriy
15.02.2017
15:45:14
Просто в yii2.

Aleksandr
15.02.2017
15:45:20
в yii2 можно контроллеры куда угодно класть. есть же controllerNamespace или что-то такое

Dmitriy
15.02.2017
15:46:45
Там нельзя так Admin/DashboardController, Api/UserController
Вложености нету.

Aleksandr
15.02.2017
15:47:20
да как нельзя, если можно?
ну кароч исхитриться можно если даже нельзя (в Module::init() переопределять например - не суть)

Dmitriy
15.02.2017
15:49:28
https://github.com/yiisoft/yii2/issues/1520 без костылей этого не добиться

Aleksandr
15.02.2017
15:52:17
ну и не надо. размещай плоско.

Ilya
15.02.2017
15:57:05
Немного не понял
https://github.com/yiisoft/yii2/pull/13517#issuecomment-279949801
Это он предложил или так уже можно сейчас делать?
Нарооод
Так сейчас этого нет в реализации?

Artur
15.02.2017
16:04:31
narod.ru

Ilya
15.02.2017
16:04:35
Я просто не могу найти, но может кто знает