Гласные и негласные правила написания приложений

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
taurus2790
Сообщения: 52
Зарегистрирован: 2015.01.29, 20:12

Гласные и негласные правила написания приложений

Сообщение taurus2790 » 2015.02.07, 03:03

Добрый ночи всем.

Начинаю изучать Yii2 после нескольких платных курсов по php. Начал создавать своё приложение, и пака не зашёл далеко хотелось бы не наделать ошибок позади.

Скажите какие есть общие правила хорошего тона, или просто удобное строение хорошего приложения. По расположению модулей, моделей, контроллеров и вьюшек.

Вот у нас следующая структура.
backend - базовые
common - общие
console - консоль
frontend - внешние

Вот можете рассказать на примере какого-нибудь сложного приложения рассказать что куда помещать?

Например у меня такое приложение.
Есть модуль в котором: 3 контроллера, несколько моделей и много вьюшек.
1. добавляются админом записи о Торговых комплексах.
2. Далее пользователи смогут добавлять свои магазины.
3. Пользователи могут добавлять статьи к своим магазинам и товары, да и вообщем любые события.

У меня получилось так что этот модуль раскидан по 3 папкам если по логике этой статьи https://github.com/yiisoft/yii2/blob/ma ... ced-app.md

Как это правильно раскладывается?

Аватара пользователя
taurus2790
Сообщения: 52
Зарегистрирован: 2015.01.29, 20:12

Re: Гласные и негласные правила написания приложений

Сообщение taurus2790 » 2015.02.07, 03:04

И кстати, в именах тоже кто как делает, чтобы патом не путаться что к какому контроллеру относится

Аватара пользователя
wokster
Сообщения: 308
Зарегистрирован: 2013.09.06, 14:12
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение wokster » 2015.02.07, 19:42

Я не думаю, что есть стандарты. Скорее есть глупости, которые нельзя делать, но в остальном все зависит от проекта. Например общие модели кидают в common/models, а модели которые планируются только для админки в backend/models и в данном случае ошибкой будет создать две модели в frontend и backend если они не различаются, в то же время если логика различна, это оправдано и лепить общий велосипед в common не стоит.

Аватара пользователя
taurus2790
Сообщения: 52
Зарегистрирован: 2015.01.29, 20:12

Re: Гласные и негласные правила написания приложений

Сообщение taurus2790 » 2015.02.07, 19:55

Может конечно стоит создать отдельную тему, но всё-таки, смотрите у меня структура урл такой http://сайт/site/view?id=5
можно сделать как то так http://сайт/name убрать контроллер и просто не по ид а просто имя материала

Аватара пользователя
wokster
Сообщения: 308
Зарегистрирован: 2013.09.06, 14:12
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение wokster » 2015.02.07, 19:57

Для этого есть urlmanager, который сделает то что Вам надо не зависимо от структуры
http://www.yiiframework.com/doc-2.0/yii ... nager.html

Alex@
Сообщения: 559
Зарегистрирован: 2014.12.16, 09:24

Re: Гласные и негласные правила написания приложений

Сообщение Alex@ » 2015.02.07, 19:58

taurus2790 писал(а):Может конечно стоит создать отдельную тему, но всё-таки, смотрите у меня структура урл такой http://сайт/site/view?id=5
можно сделать как то так http://сайт/name убрать контроллер и просто не по ид а просто имя материала
мне кажется это не правильно.

Аватара пользователя
wokster
Сообщения: 308
Зарегистрирован: 2013.09.06, 14:12
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение wokster » 2015.02.07, 20:01

Alex@ писал(а):
taurus2790 писал(а):Может конечно стоит создать отдельную тему, но всё-таки, смотрите у меня структура урл такой http://сайт/site/view?id=5
можно сделать как то так http://сайт/name убрать контроллер и просто не по ид а просто имя материала
мне кажется это не правильно.
Почему?

Alex@
Сообщения: 559
Зарегистрирован: 2014.12.16, 09:24

Re: Гласные и негласные правила написания приложений

Сообщение Alex@ » 2015.02.07, 20:15

Логика отсутствует.

Аватара пользователя
wokster
Сообщения: 308
Зарегистрирован: 2013.09.06, 14:12
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение wokster » 2015.02.07, 20:20

Alex@ писал(а):Логика отсутствует.
Где? В Ваших фразах? Я не хочу Вас обидеть, но Вы сделали 2 поста без единого объяснения своих слов. Напоминает автоботы, которые лазаят по форумам и постят "очень хорошая статья", "автор жги еще" и т.д.
Вы считаете, что так нельзя. Если Вы пришли к такому выводу, у Вас должны быть аргументы. Исходя из чего Вы решили что так нельзя? Исходя из чего Вы решили, что нет логики?
Может Вы и правы, но нам всем интересно узнать не Ваше мнение, а информацию, на базе которой Вы пришли к этим умозаключениям.
Если этой информации нет - для такого есть проект "mail.ru вопросы"

Аватара пользователя
maleks
Сообщения: 1843
Зарегистрирован: 2012.12.26, 12:56

Re: Гласные и негласные правила написания приложений

Сообщение maleks » 2015.02.07, 20:44

обычный ЧПУ. Если в базе хранить то потребуется свое url rule
Yii2 universal module sceleton - for basic and advanced templates

Ro7
Сообщения: 71
Зарегистрирован: 2013.08.17, 15:08

Re: Гласные и негласные правила написания приложений

Сообщение Ro7 » 2015.02.07, 20:47

taurus2790 писал(а):Может конечно стоит создать отдельную тему, но всё-таки, смотрите у меня структура урл такой http://сайт/site/view?id=5
можно сделать как то так http://сайт/name убрать контроллер и просто не по ид а просто имя материала

Код: Выделить всё

'<alias:\w+>' => 'site/view', 

Код: Выделить всё

public function actionView($alias){
    //
} 

Аватара пользователя
taurus2790
Сообщения: 52
Зарегистрирован: 2015.01.29, 20:12

Re: Гласные и негласные правила написания приложений

Сообщение taurus2790 » 2015.02.07, 20:58

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

Alex@
Сообщения: 559
Зарегистрирован: 2014.12.16, 09:24

Re: Гласные и негласные правила написания приложений

Сообщение Alex@ » 2015.02.08, 11:53

В один конроллер лучше не запихивать всё приложение, а разделить приложение на логические составные части, так в будущем будет проще работать с приложением.
а по поводу урлов, если свои хотите, то придётся делать вот так:
maleks писал(а):обычный ЧПУ. Если в базе хранить то потребуется свое url rule

ShNURoK
Сообщения: 168
Зарегистрирован: 2012.04.12, 05:44
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение ShNURoK » 2015.02.08, 21:50

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

fly2k
Сообщения: 155
Зарегистрирован: 2013.03.19, 05:31

Re: Гласные и негласные правила написания приложений

Сообщение fly2k » 2015.02.09, 06:00

ShNURoK +100!
Очень сложно не поддаваться перфекционизму, но как попой не верти, когда вот уже почти закончил, часто возникает желание все переделать, и именно по той причине, что стало больше понимания и опыта. Так что нада просто смириться с тем, что все придется переписывать :)
К тому же Yii - это фреймворк, и уже сейчас есть множество подходов к использованию(судя по виджетам, модулям и даже цмс). И вполне нормально, если у вас в итоге сложиться свой.

По стилю если еще не видели:
https://github.com/yiisoft/yii2/blob/ma ... e-style.md
https://github.com/yiisoft/yii2/blob/ma ... e-style.md

Но вот я, например, вьюхи такие не люблю :) Пишу с минимумом открываний/закрываний <?php. Можно весь хтмл заворачивать в хелперы их Html:: класса. Кому как нравится.

Еще, я бы рекомендовал вообще пока не париться про backend/frontend а сделать хоть что-то на basic-app. Это позволит не отвлекаться на структуры директорий вообще. Особенно, если вы только что с платных курсов ПХП - тут общих вещей(не про Yii) еще нарыть придется наверное не мало... руку набить.

Удачи!
// Yii2Rulez!

Аватара пользователя
keltstr
Сообщения: 83
Зарегистрирован: 2013.01.12, 23:17

Re: Гласные и негласные правила написания приложений

Сообщение keltstr » 2015.04.02, 00:07

Alex@ писал(а):В один конроллер лучше не запихивать всё приложение, а разделить приложение на логические составные части, так в будущем будет проще работать с приложением.
а по поводу урлов, если свои хотите, то придётся делать вот так:
maleks писал(а):обычный ЧПУ. Если в базе хранить то потребуется свое url rule
Почему лучше? все от задачи зависит - если небольшое приложение с несколькими действиями, то очень даже можно все в одном котроллере сделать.
Да и не в контроллере вопрос, а в красивом и правильном url - даже если контроллеров несколько, то можно сделать маппировку для всех необходимых [Controller/Action] с нужными чпу-буковками и будет, то что нужно было - site.ru/name site.ru/vargan site.ru/stories и т.д.
http://guide.yii2.org-info.by/ - руководство Yii2 по-русски, со сквозным сопоставлением ссылок на рус. и англ. темы.Русский поиск.Работает на телефонах.Обновляется.Предложени по доработке viewtopic.php?f=19&t=21391

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение New_Wind » 2015.04.02, 00:43

Код разбивать по контроллерам надо используя обычную логику. Например, чтобы один контроллер включал схожие по структуре/контенту разделы. Не стоит делать жирные контроллеры как минимум из тех соображений, чтобы их в дальнейшем легко было разобрать и понять, вам, или тому, кто будет читать код после вас.
А красивые урлы можно аккуратно настроить при помощи mod_rewrite + правила в urlManager.

Например:

Код: Выделить всё

    	'urlManager' => [
    		'enablePrettyUrl' => true,
		'showScriptName' => false
    		'rules' => [
    				'contact'=>'site/contact',
    				'infrastructure'=>'site/infrastructure',
    				'about'=>'site/about',
    				'articles'=>'article/index'
    		],
    	],    	
Много открываний/закрываний <?php в видах часто делается из соображения того, что между вставками пхп-кода будут участки верстки, которые могут обслуживаться людьми не сильно знакомыми с PHP.

Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение New_Wind » 2015.04.02, 00:53

Кстати, чем обусловлено такое правило?
Code MUST use 4 spaces for indenting, not tabs.
Взято отсюда: https://github.com/yiisoft/yii2/blob/ma ... e-style.md

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Гласные и негласные правила написания приложений

Сообщение zelenin » 2015.04.02, 01:07

New_Wind писал(а):Кстати, чем обусловлено такое правило?
Code MUST use 4 spaces for indenting, not tabs.
Взято отсюда: https://github.com/yiisoft/yii2/blob/ma ... e-style.md
psr-1,2

Аватара пользователя
ksetrin
Сообщения: 81
Зарегистрирован: 2015.03.06, 10:00
Контактная информация:

Re: Гласные и негласные правила написания приложений

Сообщение ksetrin » 2015.06.02, 09:37

Обосновано тем, что величина табов в разных редакторах разная, а величина пробелов одинаковая

Ответить