Видел кто-нибудь Бест Практикс для yii?
Видел кто-нибудь Бест Практикс для yii?
в частности возникли сомнения у меня про виджетам.
я не могу никак найти те грани, с которых нужно начинать вьюшки переносить в виджеты,
а так же как мелко нужно дробить сам виджет на несколько виджетов?
Если по первому пункту я как-то для себя определил условия (хотелось бы почитать лучшие практики, так ли я делаю), это:
1. при частом использовании одинакового кода в нескольких местах. (хотя иногда часть выношу в отдельную вьюшку и вызываю рендером ее)
2. для удобочитаемости/красивости кода.
то во втором случае я свой проект переписывал уже несколько раз и каждый раз мне кажется делаю что-то не так, т.к. когда укрупненный виджет, то вроде как все в одном месте и вроде как удобно, но передавть опции в такой виджет становится затруднительным, т.к. слишком много разных блоков в нем.
А если начинаю дробить, то во вьюшке код получается настолько большим, так же из-за передачи данныхили предварительного создания внутренних виджетов, что кажется, нужно было создать просто отдельную вьюшку без кучи виджетов и просто ее вызывать когда нужно и т.д.
я не могу никак найти те грани, с которых нужно начинать вьюшки переносить в виджеты,
а так же как мелко нужно дробить сам виджет на несколько виджетов?
Если по первому пункту я как-то для себя определил условия (хотелось бы почитать лучшие практики, так ли я делаю), это:
1. при частом использовании одинакового кода в нескольких местах. (хотя иногда часть выношу в отдельную вьюшку и вызываю рендером ее)
2. для удобочитаемости/красивости кода.
то во втором случае я свой проект переписывал уже несколько раз и каждый раз мне кажется делаю что-то не так, т.к. когда укрупненный виджет, то вроде как все в одном месте и вроде как удобно, но передавть опции в такой виджет становится затруднительным, т.к. слишком много разных блоков в нем.
А если начинаю дробить, то во вьюшке код получается настолько большим, так же из-за передачи данныхили предварительного создания внутренних виджетов, что кажется, нужно было создать просто отдельную вьюшку без кучи виджетов и просто ее вызывать когда нужно и т.д.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видел кто-нибудь Бест Практикс для yii?
Когда присутствует достаточное количество логики рендеринга.начинать вьюшки переносить в виджеты
Так, чтобы виджет делал что-то одно, а не занимался всем и сразу.как мелко нужно дробить сам виджет на несколько виджетов
Нравится Yii? Давайте сделаем его лучше!.
Re: Видел кто-нибудь Бест Практикс для yii?
вот тут и возникают сомнения.Sam Dark писал(а):Так, чтобы виджет делал что-то одно, а не занимался всем и сразу.
простой пример по профилю пользователя:
вывод профиля пользователя это одно?
или вывод аватара это одно, а вывод данных пользователя это другое?
а еще могут быть разные статистики, команды.. и т.д.
я только работу с профилем уже переписал на несколько раз..
сначала думал сделать все несколькими виджетами..
показалось слишком сложно для виджета. начал дробить..
для аватар - один виджет,
для показа доступных свойств профиля - другой виджет
для показа доступных команд работы с профилем - третий..
для статистики - четвертый и т.д.
вроде как все понравилось, но потом появились блоки, которые как выяснилось тоже используются вместе во многих местах..
например аватар и некотрая статистика...
или автар и свойства профиля..
начал комбинированные виджеты создавать...в результате мелкие, такие как вывод аватара, оказались особо и не нужны, т.к. проще написать img, чем название виджета со списком параметров.
отсюда и возник вопрос.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видел кто-нибудь Бест Практикс для yii?
Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
Нравится Yii? Давайте сделаем его лучше!.
Re: Видел кто-нибудь Бест Практикс для yii?
А если это кусок представления который повторяется в нескольких местах?Sam Dark писал(а):Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
Re: Видел кто-нибудь Бест Практикс для yii?
$view->renderFile ?yan писал(а): А если это кусок представления который повторяется в нескольких местах?
Re: Видел кто-нибудь Бест Практикс для yii?
и где будет лежать этот файл который рендер? можно наверное придумать общую папку для подобных вьюх, но это как-то уже на мой взгляд выбивается из концепции фреймворкаmaleks писал(а):$view->renderFile ?yan писал(а): А если это кусок представления который повторяется в нескольких местах?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видел кто-нибудь Бест Практикс для yii?
Ничего не выбивается. Фреймворк не заставляет вас раскладывать ваш код каким-то строго определённым образом. Нужна папка — создаём папку. Нужен класс — создаём класс.
Нравится Yii? Давайте сделаем его лучше!.
Re: Видел кто-нибудь Бест Практикс для yii?
может я плохой пример приведу и так делать не надо ...
но вот например у меня есть некие "заявки" и на добавление заявки и на смену причины заявки надо был один и тот же кусок разметки ...
в папке views/request создал папку blocks и туда все это посливал ... как по мне вроде опрятно все выглядит ... ну и в вьюхе render это подцепляет (по сути тот же renderFile ...)
но вот например у меня есть некие "заявки" и на добавление заявки и на смену причины заявки надо был один и тот же кусок разметки ...
в папке views/request создал папку blocks и туда все это посливал ... как по мне вроде опрятно все выглядит ... ну и в вьюхе render это подцепляет (по сути тот же renderFile ...)
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видел кто-нибудь Бест Практикс для yii?
Ну замечательно.
Нравится Yii? Давайте сделаем его лучше!.
Re: Видел кто-нибудь Бест Практикс для yii?
этот этап у меня был. Тоже создавал папки blocks во views, аналогичные blocks создавал в папках для вьюх контроллеров (удобно было потом находить нужный блок)caHek2x писал(а):может я плохой пример приведу и так делать не надо ...
но вот например у меня есть некие "заявки" и на добавление заявки и на смену причины заявки надо был один и тот же кусок разметки ...
в папке views/request создал папку blocks и туда все это посливал ... как по мне вроде опрятно все выглядит ... ну и в вьюхе render это подцепляет (по сути тот же renderFile ...)
несколько позже я понял что скорее всего не понимаю некоторых идей yii2 и проект получался уж очень анархичным. В конце-концов я отказался от размещения подобных вьюх, по возможности перенося в виджеты. Но до конца кончено же не избавился от подобных промежуточных вьюх. Решил что возможно будет удобнее не создавать папки тематические, а создавать возможно стоит тематические модули и в них создавать нужное количество виджетов. В итоге решил поискать какие-то бест практикс, заодно спросить тут, может проявится какая-то общая правильная тенденция.
Re: Видел кто-нибудь Бест Практикс для yii?
хотелось бы как-то сразу обозначать для себя некоторые правила, по которым определять: нужно ли создавать для определенного куска виджет или нетSam Dark писал(а):Если в виджете не оказывается логики, значит он не был нужен. Всё верно.
все-таки переписывать проект, создавая виджет, когда проект уже готов даже на 20% совсем не хочется, и совсем не хочется переписывать его второй раз, выяснив позже, что виджет, который создал на 20% оказывается лишним.
а оставлять половину проекта на виджете, а половину не используя виджет, на мой взгляд - дурной тон.
Re: Видел кто-нибудь Бест Практикс для yii?
когда это просто разметка я создаю блоки ... когда это нечто с запросами или чемто подобным я создаю виджеты ...