Страница 1 из 28

Yii2 Starter Kit - шаблон для старта приложения

Добавлено: 2014.08.13, 22:26
ZeiN
Внимание! В проект постоянно добавляются новые плюшки и улучшения. Так что текст ниже не покрывает всего что есть, т.к. у меня нет времени и возможности синхронизировать его с чейнджлогом. Актуальную информацию смотрите в репозитории проекта.

Доброго времени суток. Решил поделится и послушать обоснованную критику о своем небольшом наборе для быстрого старта нового проекта.
Собрал в этом наборе компоненты и заготовки, которые встречаются в большинстве типовых и не очень проектов. Едва успел остановится чтобы не городить свою CMS, но сделал довольно много всяких полезных вещей.

Первым делом - https://github.com/trntv/yii2-starter-kit
Демо:
http://yii2-starter-kit.terentev.net
http://backend.yii2-starter-kit.terentev.net
Login: webmaster
Password: webmaster

Набор основан на advanced шаблоне из оф. репозитория.
В комплекте:
- Готовая админка, с отличной темой под MIT лицензией http://almsaeedstudio.com/AdminLTE/
- Фронт+бек для статей с категориями, статичных страниц, текстовых блоков
- Бек к бутстраповским каруселям
- Возможность задания конфигов для меню с помощью json и созданный под это дело виджет yii2-aceeditor
- Настроенный DbTarget + просмотр логов из админки
- Управление пользователями
- Профиль пользователя (имя, пол, аватар, локаль)
- Минимальный RBAC с тремя ролями по умолчанию - user, manager, administrator
- События приложения + интерфейс к ним.
- Компонент файловых хранилищ (слой абстракции ) + базовое хранилище "filesystem" + экшены и поведения под это дело
- Небольшой самописный загрузчик файлов - базовый функционал поверх blueimp. Пример работы при загрузке аватара в профиле
- Переключение языков в настройках профиля + перевод текстов набора на русский и украинский
- Сводка информации о системе хоста с красивыми графиками :)
- Простое хранилище ключ-значение. Чтобы понять зачем оно надо - поменяйте значение ключ "backend.theme-skin" на "skin-black" например.
- большинство client-side библиотек установлены через bower, конфиг в проекте, так что можно легко обновлять.
- elfinder, imperavi c подключенной загрузкой файлов, парочка полезных поведений и много всяких мелочей. Например пример конфига под nginx. Находится в environments/local/nginx_example.conf

Ставится все это через composer. Название пакета trntv/yii2-starter-kit. После установки, настраиваем веб-сервер, соединение с базой, применяем миграции и запускаем php environments/local/yii rbac/init

P.S. Пользуйтесь на здоровье. Код местами может быть сыроват, местами не оптимален, местами могут быть баги (вообщем-то как обычно ;))
Очень-очень приветствуются замечания, любые даже незначительные пул реквесты, советы и добрые слова. Удачи и мир вашему дому.

P.S.S. elfinder пока не совсем рабочий, сегодня отправил пулл реквест автору с небольшим улучшением и исправлением. Как примет его - все заработает.
UPD. Уже принят.

UPD 15.10.2014
Между тем, было сделано очень много нового с момента создания темы.
- user - вынесен в отдельный модуль + новые функции (смена юзернейма, пароля и тп)
- модуль для управление переводами в DbMessageSource + контроллер для миграции сообщений между разными форматами + простенький экшн для смены локали
- кеш, оптимизации
- улучшена структура конфигов
- добавлены backendUrlManager и frontendUrlManager, чтобы можно было в одном приложении ссылаться на другое
- новые заготовки конфигов (кеш nginx например)
- использование Bleamable и Slugable поведений
- ... что-то еще о чем я забыл
- тонны мелких улучшений
PS. отдельно написал небольшой proof-of-concept xhprof панели для дебаг модуля - https://github.com/trntv/yii2-debug-xhprof
Панель включена в yii2-starter-kit, посмотрите, принимаю замечания и пожелания - буду улучшать

UPD 07.04.2015
Для особо ленивых, тех кто работает в команде, а так же тех кто не понимает как применить то что написано в README к его WAMP платформе - в проект добавлена поддержка Vagrant. Так что весь запуск и работа сводятся к одному (ну почти :-) одному)

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

vagrant up
Удачи

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.13, 23:11
PendalF
Очень и очень круто! Особенно понравилась система логов и оповещений, возьму эту идею на вооружение. Ещё порадовал загрузчик аватарок к пользователям, выглядит здорово и работает шустро!

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.13, 23:43
ZeiN
PendalF писал(а):Очень и очень круто! Особенно понравилась система логов и оповещений, возьму эту идею на вооружение. Ещё порадовал загрузчик аватарок к пользователям, выглядит здорово и работает шустро!
Спасибо. В планах туда добавить загрузку нескольких изображений и визуализировать загруженную "не картинку". Так что пока он готов только наполовину.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 00:44
Akulenok
в профиле ставлю русский, перехожу на любую страницу, текст становится опять английским, так и должно быть?

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 09:44
ZeiN
Akulenok писал(а):в профиле ставлю русский, перехожу на любую страницу, текст становится опять английским, так и должно быть?
Вообще-то нет. Это новый пользователь или webmaster? frontend или backend?

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 11:11
Akulenok
webmaster frontend

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 11:56
ZeiN
Akulenok писал(а):webmaster frontend
странно, у меня нормально работает. прошу учесть что там язык меняется только через 1 запрос. сделал пока по быстрому, поэтому так. на днях додумаю как лучше и сделаю, чтобы переключался в следующем.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 12:53
ZeiN
Akulenok писал(а):в профиле ставлю русский, перехожу на любую страницу, текст становится опять английским, так и должно быть?
Вообщем отловил баг и поправил. Спасибо за наводку.
Переключение языка в следующем запросе тоже заодно сделал.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 13:15
samdark
Офигенно. Можно я это всё использую для допила advanced шаблона? :)

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 14:08
xoma
Едва успел остановится чтобы не городить свою CMS
Я в свое время так и не смог остановиться =) Выглядит классно все!

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 21:43
ZeiN
Sam Dark писал(а):Офигенно. Можно я это всё использую для допила advanced шаблона? :)
конечно :)

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.14, 22:05
Ekstazi
Неплохо для начала, спасибо.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 11:24
alexKh
Спасибо, большое, если "вкусняшки", которые можно выдернуть на свой проект =)

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 17:04
ZeiN
Благодаря людям, которые пришли протестить демку, нашлись баги. Сейчас я поправил ошибки которые благодаря им остались в логах :)
Плюс обнаружил что немного ошибся с составлением .gitignore и в репозиторий не ушла часть файлов из environments/local/config.
Так что имейте ввиду, что за последние сутки, много поправлено и кое-что добавлено ;)

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 17:50
zelenin
было бы неплохо все разбить на модули, т.к. чересчур много всего в каждой папке.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 21:56
ZeiN
zelenin писал(а):было бы неплохо все разбить на модули, т.к. чересчур много всего в каждой папке.
например?
раньше тоже любил все разбивать по модулям, но в данном случае может только для статей создал бы модуль, так как в там две сущности. К тому же сильно усложнять структуру не хотелось бы.

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 21:59
zelenin
ZeiN писал(а):
zelenin писал(а):было бы неплохо все разбить на модули, т.к. чересчур много всего в каждой папке.
например?
раньше тоже любил все разбивать по модулям, но в данном случае может только для статей создал бы модуль, так как в там две сущности. К тому же сильно усложнять структуру не хотелось бы.
https://github.com/trntv/yii2-starter-k ... ontrollers
https://github.com/trntv/yii2-starter-k ... mon/models

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 23:03
ZeiN
Да контроллеров немало, но я не совсем хочу делать точно такое же количество модулей. Раньше на каждую сущность делал. Сейчас же не вижу смысла, если логически не объединяются минимум три сущности в модуль, либо для чего-то нужна специфическая логика. Вот как например статья, категория статьи и что-то еще. Пока тут такого нет, имхо, нет. Да и не хотелось сильно усложнять, это же стартовый набор, а не CMS

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 23:07
lynicidn
модули проще переносить, если это каркас, то нет смысла и правда, но такая каша не популярна, трудно чтото выкинуть и заменить другим. С другой стороны нельзя связать 2 модели из разных модулей логически верно.
п.с. в смысле надо костылить с классами для related models

Re: Yii2 Starter Kit - мой стартовый набор

Добавлено: 2014.08.15, 23:13
ZeiN
xoma писал(а):
Едва успел остановится чтобы не городить свою CMS
Я в свое время так и не смог остановиться =)
Ну и не зря ;)