
ivphpan
11.04.2017
07:02:30
для изоляции backend, frontend приложения
и связующий common

Dmitriy
11.04.2017
07:03:03
Не нужно так делать. Эти common это как Коребандлы в симфони. не понятно зачем

ivphpan
11.04.2017
07:04:05
Я использовал, так как старший сказал
Сейчас я понимаю, что он усложняет все

Dmitriy
11.04.2017
07:04:53

Google

ivphpan
11.04.2017
07:05:09
Старшего давно нет
Я не против поучиться)
так вот вчера в advonced я писал одну проблему с identityClass который проставляет common/models/User
хотя в конфиге другое прописываю
где он его перезатирает непонятно

Nurik
11.04.2017
07:08:37
Вот пример, почему плох Advanced.
У меня есть юзеры. Я создал модель в common. И тут все отлично.
Потом в Backend какой-то чувак создаёт модель и наследует эту модель из common от юзеров (Спец клиенты) и часть данных забирает из API т.е. модель заполняется из нескольких мест. Теперь я беру и меняю что-то в common и пиздец.

ivphpan
11.04.2017
07:08:41
Дим, я тебя не узнал

Dmitriy
11.04.2017
07:09:09
=)

Ivan
11.04.2017
07:10:19

ivphpan
11.04.2017
07:10:41
Мне кажется тут ошибка в том что модель наследуется
Получается где то что то новое
А где то все по старому
Гит же склеивает код зачем модель размножать

Nurik
11.04.2017
07:12:10

ivphpan
11.04.2017
07:14:17
у меня есть common модели
то есть common/AR
от него наследуется Object и там вся логика

Nurik
11.04.2017
07:15:24

Google

ivphpan
11.04.2017
07:15:56
Чем?

Nurik
11.04.2017
07:17:29
Чем?
Я об этом написал выше. Я отдал Backend одному чуваку и сказал пили админку. Он начал пилить и чтобы меньше работать, он начал наследовать мои модели из common. Всё.
Я поменял что-то в моделях и здравствуй гидракод.

ivphpan
11.04.2017
07:20:07
Ну так это твой работник
А для меня удобно тем
что я допустим добавил поля, связи
перегенерил модель через gii
и добавил логигу в унаследованный от этой модели

Dmitriy
11.04.2017
07:20:52
Я бы тебя тоже убил за это

ivphpan
11.04.2017
07:21:14
Что в этом плохого?
Дим, твой аргумент какой

Dmitriy
11.04.2017
07:21:46
зачем наследовать ? и зачем там логика ?

ivphpan
11.04.2017
07:25:57
Я выше написал Дим
Что перегенерил быстро структуру, что то удалил, что то добавил в наследнике
меньше телодвижений

Nurik
11.04.2017
07:26:53

Dmitriy
11.04.2017
07:31:28

ivphpan
11.04.2017
07:32:18
а кто, или что тебе мешает документацию сделать?

Nurik
11.04.2017
07:32:19
Нельзя доверять человеку. Нужно создавать интерфейсы на уровне кода. Даже себе не надо доверять. Модульный подход лечит от ошибок лени.

ivphpan
11.04.2017
07:39:27
Нурик, дай почитать по этот подход

Dmitriy
11.04.2017
07:40:29
солид же , там всякие сервисные слои, di и т.д

Аmal
11.04.2017
07:40:37
Developer.uz
Тут хорошо пишет
в блоге у нее

Konstantin
11.04.2017
07:43:12
не знаю зачем адвенсед. я его не трогаю, с ним геморроя больше чтобы запустить. Если мне нужна отдельная админка я бы сделал ее модулем на бейсике

Google

Konstantin
11.04.2017
07:44:12
http://shot.hsdn.org/HVFH6hXS
как то так

SiZE
11.04.2017
07:45:02
Advanced и Basic это всего лишь точки входа выглядящие слегка по разному.

Konstantin
11.04.2017
07:51:12
в адвенсед миграции встроены уже, инициализация какая то, файлы по другому называются, и в ообще мне кажется грамоздким ) хотя в инете в каждый пример пичкают этот адвенсед ?

Dmitriy
11.04.2017
07:52:06
хеллоу гайс!

Ivan
11.04.2017
07:52:14

Dmitriy
11.04.2017
07:52:51
я могу Serializer изменить свойство из акшина?
это не позорно? )

Konstantin
11.04.2017
07:55:03
жизнь коротка чтобы думать о позорах ))
второй шанс все равно не дают ?

Dmitriy
11.04.2017
07:55:42
может подскажите как получить доступ к этому поведению

Dmitriy
11.04.2017
07:57:25
ой все готово
не нужно)
$this->controller и все дела

Аmal
11.04.2017
07:59:52
ой всё


Mr.
11.04.2017
08:09:56
привет всем! вложу немного своего в холивар advanced против basic
правильно @sizepermru написал, что они отличаются только точками входа
advanced это как несколько basic (те, frontend и backend, по сути, те же basic), просто иногда нужно разделять админский функционал, и пользовательский
например, в одном моём проекте (интернет-магазин) на backend'е была вся админка (и модулем получилось-бы не айс, ибо под каждый определённый функционал (менеджмент категорий, товаров, заказов, пользователей) был свой модуль - так проще)), а на frontend'е - весь интерфейс магазина (то есть, пользовательская часть)
в common/models были общие модели (в моём случае - все AR), в каждом приложении (backend/frontend) были свои модели, иногда (а точнее, почти всегда) унаследованые от common моделей
если у вас в команде нет общего понимания, зачем нужно использовать разделение - тогда и возникает вопрос "а зачем вообще advanced"
в общем, суть advanced в том, чтобы не создавать кучу модулей в basic, а разделять это на разные зоны - frontend и backend, как в базовом advanced'е
потом в этом проекте добавилась касса - отдельный cashbox app (как frontend или backend), со своими модулями, своими моделями
потом нужно было добавить api - добавился по аналогии с cashbox'ом api

Google

Mr.
11.04.2017
08:12:17
в общем, yii даёт вам возможность разделять приложения логически, чтобы не путаться в том, зачем нужны те или инные модели
а уже от того, как вы это используете, или не используете, вы смотрите что вам удобнее - advanced или basic
ну и не мало важный момент - если у вас в моделях есть логика как админского функционала, так и юзерского, никто не исключает косо-криворукого разработчика, который по своему незнанию воткнёт админский метод на фронтенд

Dmitriy
11.04.2017
08:15:30
Ну начнем холивар

Dmitriy
11.04.2017
08:15:43
да ну

Mr.
11.04.2017
08:15:49
насчёт документации: да, согласен - код должен быть таким, чтобы и без документации не возникало вопросов как его использовать. Но документация - это способ описать для "будущих поколений" что делает ваш метод, а не область его применения
область применения - это уже местоположение той или инной модели в backend или frontend app (в advanced шаблоне), и если я вижу в backend/models какую-либо модель, я понимаю, что эта модель заточена конкретно для использования в backend app, пусть она и наследуется от common
при этом, никто же не мешает в advanced app использовать common модели в чистом виде

Dmitriy
11.04.2017
08:15:53
не нравится шаблон сделай себе как удобно )

Mr.
11.04.2017
08:16:21

Dmitriy
11.04.2017
08:16:48
лучше подскажите либу для crop и resize , не виджен я просто сахар для работы с имаджем

Mr.
11.04.2017
08:17:25
Ну начнем холивар
чтобы не было холивара, нужно разработчику, ещё на стадии проектирования, определиться с тем, что ему нужно
и от того, будет-ли это командная работа, или соло-проект, это никак не зависит


Dmitriy
11.04.2017
08:18:18
привет всем! вложу немного своего в холивар advanced против basic
правильно @sizepermru написал, что они отличаются только точками входа
advanced это как несколько basic (те, frontend и backend, по сути, те же basic), просто иногда нужно разделять админский функционал, и пользовательский
например, в одном моём проекте (интернет-магазин) на backend'е была вся админка (и модулем получилось-бы не айс, ибо под каждый определённый функционал (менеджмент категорий, товаров, заказов, пользователей) был свой модуль - так проще)), а на frontend'е - весь интерфейс магазина (то есть, пользовательская часть)
в common/models были общие модели (в моём случае - все AR), в каждом приложении (backend/frontend) были свои модели, иногда (а точнее, почти всегда) унаследованые от common моделей
если у вас в команде нет общего понимания, зачем нужно использовать разделение - тогда и возникает вопрос "а зачем вообще advanced"
Люди используют модули не как нужно. Они должны быть самодостаточны и не зависеть не от чего. с админкой так не получится. Ибо вы все равно зависите от внешних факторах .
И зачем разделять на комон и дальше... если есть нейспейсы. Вполне не плохо весь мир разделяет функционал на домены(не веб домены)
Просто в иий так сложно сделать из-за ограничений фреймворка вот и придумали костыли типо адвантед

Admin
ERROR: S client not available

Dmitriy
11.04.2017
08:18:25
лучше взять бейс и клепать самому в модулях. модуль api/control/console и так далее
http://joxi.ru/nAyQxvZS1qoaAZ
как-то так делаю всегда

Dmitriy
11.04.2017
08:21:55

Mr.
11.04.2017
08:22:38
насчёт модулей: никто не говорит, что модули совсем не самодостаточны
они самодостаточны в рамках app'а
возможно, понятие модуля в yii от понятия "модуль" в принципе у меня кардинально отличаются, так как я вижу модуль как возможность отделить какой-то большой функционал от общего так, чтобы его работа не сказалась на работе остального приложения, ну и при этом упорядочить файлы так, чтобы новичку было понятно что к чему

Dmitriy
11.04.2017
08:24:50
yii навязывает большую связанность, лучше просто расслабиться) модули хороши для наведения порядка и структуры проекта.
если в конце проекта не хочется себя убить, то ты хорошо поработал


Mr.
11.04.2017
08:27:58
как мне показывает практика, модули в разных фреймворках это совсем разные понятия
в zend'е у нас модуль - это отдельное приложение, и чтобы сделать возможность использования для нескольких модулей общих моделей мне понадобилось много времени
в yii тот же функционал реализован в рамках разных app'ов - frontend'а и backend'а
кейс: приложение для перевода денег от одного человека другому
необходимые "модули" или "приложения" - кабинет, в котором пользователь регистрируется, и добавляет кошельки\карточки, а также способы, по которым ему можно перевести деньги, и премерчант, на который попадает человек (всё равно какой - пользователь нашей системы или нет), и переводит деньги пользователю
в yii я-бы сделал это при помощи advanced шаблона: в backend'е был-бы функционал пользователя, в frontend'е - премерчант; на zend'е это разные модули - cabinet и premerchant соответственно
при этом, логически, получается та же херня, только в профиль - то же разделение на поддомены, только точка входа получается одна, и нужно было больше городить костылей чтобы заставить это работать


Dmitriy
11.04.2017
08:29:46
насчёт модулей: никто не говорит, что модули совсем не самодостаточны
они самодостаточны в рамках app'а
возможно, понятие модуля в yii от понятия "модуль" в принципе у меня кардинально отличаются, так как я вижу модуль как возможность отделить какой-то большой функционал от общего так, чтобы его работа не сказалась на работе остального приложения, ну и при этом упорядочить файлы так, чтобы новичку было понятно что к чему
а должны быть. Иначе теряется их смысл.
Вот примерное требование к модулям:
Возможность свободно включать и выключать любые модули. Приложение должно корректно работать с любым набором модулей. Но так же модули должны иметь возможность взаимодействовать друг с другом: обмениваться данными и командами.
Каждый модуль может иметь несколько версий, которые тоже должны безболезненно заменяться. Это позволяет добиться большой гибкости. Мы просто разрабатываем две версии модуля и подключаем ту, которая нужна текущему пользователю.
Модули должны быть самодостаточными. Это следствие первых двух требований. Если модуль может быть в любой момент добавлен/удален, он должен содержать в себе все, что необходимо для его работы, и абсолютно не зависеть от других модулей.
ну и при этом упорядочить файлы так,
Есть нейспейсы. создаем папку и все. Ну да с котроллерами мы так сделать не сможем из-за ограничения фрейма.

Google

Dmitriy
11.04.2017
08:30:34
`в yii тот же функционал реализован в рамках разных app'ов - frontend'а и backend'``
это все костыли из-за ограничения фрейма

Mr.
11.04.2017
08:31:17
nuff said
каждый видит в чём-то костыли, а в чём-то хорошие решения)
где-то кто-то выше писал, что yii уже лет на 6 этак отстал от современной веб-разработки, но почему-то он всё ещё востребован)

Dmitriy
11.04.2017
08:31:55
Из-за Макарова
Если бы не Макаров, он бы у вас (СНГ) не был бы популярен

Mr.
11.04.2017
08:32:23
тот же zend, я считаю, уже лет этак на 10 отстал от веб-разработки, так как большинство решений в нём - грубые костыли (чего стоит только подтягивание вьюшек по названию action'а), но он опять-же востребован)
хотел-бы я, чтобы ОАЭ было СНГ)

Dmitriy
11.04.2017
08:33:27
В других странах фреймом пользуется 2.5 человека.
Ну это уже вне темы

Mr.
11.04.2017
08:34:24
опять же, выше кто-то писал, давно-давно, что для разного уровня проектов лучше выбирать своё
кому-то нужно что-то быстро и "дёшево" сделать - yii
что-то среднее - лара
что-то посложнее - симфа

Dmitriy
11.04.2017
08:35:40

Mr.
11.04.2017
08:36:10
в общем, мы начали холивар на тему "basic vs advanced" а сейчас вы доказываете что yii говно)
немного не туда повернул наш диалог)

Vasily
11.04.2017
08:36:47
advanced нужен, когда не нужны модули

Mr.
11.04.2017
08:36:53
я просто пытаюсь объяснить рациональность использования advanced шаблона в тех случаях, когда basic будет строиться на одних модулях

Dmitriy
11.04.2017
08:37:12
Единственный плюс адвантеда это он помогает решить "проблемы" фрейма

Konstantin
11.04.2017
08:37:38

Dmitriy
11.04.2017
08:37:39
Вот в симфони бандлы, тоже используют не понятно как. и введение их было ошибкой

Dmitriy
11.04.2017
08:38:38

Konstantin
11.04.2017
08:38:44
да

Dmitriy
11.04.2017
08:38:55
виды в апи? )

Mr.
11.04.2017
08:39:30
Единственный плюс адвантеда это он помогает решить "проблемы" фрейма
никто же не агитирует за использование того или инного шаблона, тех или инных подходов
самый правильный подход (в рамках MVC фреймворка) - использование парадигмы MVC, а как она будет реализована - разными приложениями, или разными модулями - зависит только от разработчика
также и с любым другим функционалом: не нравятся виджеты - не используйте виджеты, не нравятся миграции - не используйте миграции)