Видел кто-нибудь Бест Практикс для yii?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Видел кто-нибудь Бест Практикс для yii?

Сообщение kwasti »

в частности возникли сомнения у меня про виджетам.
я не могу никак найти те грани, с которых нужно начинать вьюшки переносить в виджеты,
а так же как мелко нужно дробить сам виджет на несколько виджетов?

Если по первому пункту я как-то для себя определил условия (хотелось бы почитать лучшие практики, так ли я делаю), это:
1. при частом использовании одинакового кода в нескольких местах. (хотя иногда часть выношу в отдельную вьюшку и вызываю рендером ее)
2. для удобочитаемости/красивости кода.

то во втором случае я свой проект переписывал уже несколько раз и каждый раз мне кажется делаю что-то не так, т.к. когда укрупненный виджет, то вроде как все в одном месте и вроде как удобно, но передавть опции в такой виджет становится затруднительным, т.к. слишком много разных блоков в нем.

А если начинаю дробить, то во вьюшке код получается настолько большим, так же из-за передачи данныхили предварительного создания внутренних виджетов, что кажется, нужно было создать просто отдельную вьюшку без кучи виджетов и просто ее вызывать когда нужно и т.д.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение samdark »

начинать вьюшки переносить в виджеты
Когда присутствует достаточное количество логики рендеринга.
как мелко нужно дробить сам виджет на несколько виджетов
Так, чтобы виджет делал что-то одно, а не занимался всем и сразу.
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение kwasti »

Sam Dark писал(а):Так, чтобы виджет делал что-то одно, а не занимался всем и сразу.
вот тут и возникают сомнения.
простой пример по профилю пользователя:
вывод профиля пользователя это одно?
или вывод аватара это одно, а вывод данных пользователя это другое?
а еще могут быть разные статистики, команды.. и т.д.
я только работу с профилем уже переписал на несколько раз..
сначала думал сделать все несколькими виджетами..
показалось слишком сложно для виджета. начал дробить..
для аватар - один виджет,
для показа доступных свойств профиля - другой виджет
для показа доступных команд работы с профилем - третий..
для статистики - четвертый и т.д.
вроде как все понравилось, но потом появились блоки, которые как выяснилось тоже используются вместе во многих местах..
например аватар и некотрая статистика...
или автар и свойства профиля..
начал комбинированные виджеты создавать...в результате мелкие, такие как вывод аватара, оказались особо и не нужны, т.к. проще написать img, чем название виджета со списком параметров.
отсюда и возник вопрос.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение samdark »

Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение yan »

Sam Dark писал(а):Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
А если это кусок представления который повторяется в нескольких местах?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение maleks »

yan писал(а): А если это кусок представления который повторяется в нескольких местах?
$view->renderFile ?
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение yan »

maleks писал(а):
yan писал(а): А если это кусок представления который повторяется в нескольких местах?
$view->renderFile ?
и где будет лежать этот файл который рендер? можно наверное придумать общую папку для подобных вьюх, но это как-то уже на мой взгляд выбивается из концепции фреймворка
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение samdark »

Ничего не выбивается. Фреймворк не заставляет вас раскладывать ваш код каким-то строго определённым образом. Нужна папка — создаём папку. Нужен класс — создаём класс.
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение caHek2x »

может я плохой пример приведу и так делать не надо ...
но вот например у меня есть некие "заявки" и на добавление заявки и на смену причины заявки надо был один и тот же кусок разметки ...
в папке views/request создал папку blocks и туда все это посливал ... как по мне вроде опрятно все выглядит ... ну и в вьюхе render это подцепляет (по сути тот же renderFile ...)
Изображение
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение samdark »

Ну замечательно.
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение kwasti »

caHek2x писал(а):может я плохой пример приведу и так делать не надо ...
но вот например у меня есть некие "заявки" и на добавление заявки и на смену причины заявки надо был один и тот же кусок разметки ...
в папке views/request создал папку blocks и туда все это посливал ... как по мне вроде опрятно все выглядит ... ну и в вьюхе render это подцепляет (по сути тот же renderFile ...)
этот этап у меня был. Тоже создавал папки blocks во views, аналогичные blocks создавал в папках для вьюх контроллеров (удобно было потом находить нужный блок)
несколько позже я понял что скорее всего не понимаю некоторых идей yii2 и проект получался уж очень анархичным. В конце-концов я отказался от размещения подобных вьюх, по возможности перенося в виджеты. Но до конца кончено же не избавился от подобных промежуточных вьюх. Решил что возможно будет удобнее не создавать папки тематические, а создавать возможно стоит тематические модули и в них создавать нужное количество виджетов. В итоге решил поискать какие-то бест практикс, заодно спросить тут, может проявится какая-то общая правильная тенденция.
kwasti
Сообщения: 262
Зарегистрирован: 2016.01.28, 16:14

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение kwasti »

Sam Dark писал(а):Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
хотелось бы как-то сразу обозначать для себя некоторые правила, по которым определять: нужно ли создавать для определенного куска виджет или нет
все-таки переписывать проект, создавая виджет, когда проект уже готов даже на 20% совсем не хочется, и совсем не хочется переписывать его второй раз, выяснив позже, что виджет, который создал на 20% оказывается лишним.
а оставлять половину проекта на виджете, а половину не используя виджет, на мой взгляд - дурной тон.
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: Видел кто-нибудь Бест Практикс для yii?

Сообщение caHek2x »

когда это просто разметка я создаю блоки ... когда это нечто с запросами или чемто подобным я создаю виджеты ...
Ответить