Airily Skeleton App

Выкладываем свои наработки
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Airily Skeleton App

Сообщение yiijeka »

Делаю для себя скелет app yii.
Делюсь :) Идея и некоторые вещи были заимствованы у Yii Bollierplate.
Пока реализована:
  • Веб-интерфейс инсталляции app с созданием необходимых таблиц, через migrate
  • Менеджер модулей:Установка, удаление, отключение, автоматическое подключение модулей с помощью composer.phar через веб интерфейс
  • Модуль user пока в стадии проработки и улучшения
Пока ещё всё сырое и не покрыто тестами. Стараюсь исправлять.

Проект https://github.com/airily/skeletonYiiApp
Установка проста, копируете и запускаете index.php.
Заточено пока под Mysql и Apache...

Примечание: Инсталляция модулей проходит по правилам composer. Работа модулей будет зависеть от того, что они действительно будут "идеальными" модулями, не требующие никаких дополнительных компонентов. Иначе не нужно рассчитывать на сверхъестественное и прийдётся все равно лезть в код установленного модуля, для решения возникших проблем. Установщику модулей нужно скормить zip файл (Имямодуля__Версия). Не нужно имя модуля выдумывать с -** и другими символами, лучше брать обычные, т.к. это имя потом будет папкой модуля (например pages.zip, blog.zip...). Конечно там предусмотрено валидация имени, но всё же. :) Версия должна идти после имени и двойного подчёркивания __ и соответствовать правилам http://getcomposer.org/doc/04-schema.md#version. Полное имя zip выглядит приблезительно так raiting__2-RC2.zip или так raiting.zip (версия будет присвоена 1.0.0.0)
raiting__2-RC2.zip
Простой тестовый модуль
(2.25 КБ) 476 скачиваний
UPD: Настройка "Человекопонятные URL"

Буду рад вашим идеям и фидбекам.
Последний раз редактировалось yiijeka 2013.02.18, 17:25, всего редактировалось 3 раза.
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

Вау! Достаточно интересный скелет =)

Вопрос такой, а как я могу использовать данные строчки ? попробовал применить - не встало
'urlManager' => array(
'urlFormat'=>'path',
'showScriptName' => false,
),

Ну т.е. чтобы вместо
backend.php?r=
Было просто backend/
Ну и с главной тоже как нибудь
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

Используя 'showScriptName' => false мы избавляемся от входного index и backend, но т.к. по-умолчанию входные файлы бэкенда и фронтэнда лежат в одной папке то

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

RewriteRule . index.php
RewriteRule . backend.php
не будут работать. Сервер не понимает к какому из них обратиться. Их нужно поместить в разные папки.
Спасибо, подумаю над этим;)
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

@TBIKC
https://github.com/githubjeka/skeletonY ... ba3065571e
Сделал, чтобы работали правила.
День, два потестю и залью в офф репо.
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

Дык давайте сразу в офф, и сразу будем тестить =)
Как то не очень охото сейчас качать форк устанавливать ну и т.д. :)
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

Готово, просто там имя frontend тоже пишеться в урл. Например localhost.org/frontapp/... избавиться от frontapp, не получилось сразу.

Имя к backen в урл можно поменять в \protected\backend\config\params-prod.php -> $rootBackend = 'backend'; так же нужно и в \.htaccess 340 строка RewriteRule ^backend backend.php [L] (часть ^backend заменить на свою, если надо)
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

Бэк отлично отрабатывает, а вот про фронт я не понял
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

грубо говоря index.php скрыть не удаётся, вместо него обязательно нужно выводить имя , по умолчанию /site/, ну эт пока :)
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

ааа, ладно, надо просто придумать решение, и будет очень элегантный скелетик =))
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

Придумал, сделал, обновил, ... =)
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

Что то на главной не заметно :)
При входе кидает на http://skeletonyiiapp/index.php?r=users
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

Хз, я там обновил, была проблема с загрузкой стилей и картинок на фронт.

Посмотри ещё, чтобы \protected\frontend\config\main.php был блок разкомментирован (75 строка):

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

'urlManager' => array(
  'urlFormat' => 'path',
  'showScriptName' => false,
  'urlSuffix' => '/',
  rules' => $params['url.rules']
),
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

По настройке url:
1. Нужны ЧУП для backend?
Находим в \protected\backend\config\main.php

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

'urlManager' => array(...), 
и разкоментируем его. Также поступаем и с кодом в \.htaccess

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

RewriteRule ^backend backend.php [L] 

2. Нужны ЧУП для frontend?
Находим в \protected\frontend\config\main.php

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

'urlManager' => array(...), 
и разкоментируем его. Также поступаем и с кодом в \.htaccess

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

RewriteCond %{REQUEST_FILENAME} !/(css|images|js)/
RewriteRule !backend(.*) index.php [L] 
Правила задаются в \protected\(backend|frontend)\config\params(-prod|local).php
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Airily Skeleton App

Сообщение porcelanosa »

А есть какая-нибудь инструкция как сабмитить на Github -
Я сделал форк на github вашего репозитария.
Checkout на локальном сервере из своего форка.
И типа если я сейчас буду, что править, и коммитить, то как это потом к примеру предложить Вам в качестве улучшения.
Где-то в каком то проекте на github читала подробную инструкцию, но не могу найти - а по памяти дальше вышеприведенных двух действий не помню
UPD:
Может это важно. Я под windows - юзаю phpStorm
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
TBIKC
Сообщения: 133
Зарегистрирован: 2011.07.23, 16:30

Re: Airily Skeleton App

Сообщение TBIKC »

Что то я совсем запутался =)
Раскомментировал ЧПУ urlmanager в бэке и фронте и ничего не работает
в .ht найти не могу такие строчки )
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Airily Skeleton App

Сообщение porcelanosa »

TBIKC писал(а):Что то я совсем запутался =)
Раскомментировал ЧПУ urlmanager в бэке и фронте и ничего не работает
в .ht найти не могу такие строчки )
У меня открывается и
http://skeleton.local/index.php и http://skeleton.local/index.php?r=site - еще не копалось, но похоже, где - то правила не убраны.
а авторизация на фронтэнде и бэкэнде раздельная.
Хорошо это или плохо не знаю. У меня в моем "скелете" так тоже сделано - но я просто не задумывалась над этим. Как получилось.

P.S> хороший афоризм пришел на ум. "У каждого программиста - есть свой скелет на GitHub" :-)
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

Re: Airily Skeleton App

Сообщение Koduc »

TODO list :)
- Инсталлятор подпилить под линуксы - пытается создавать папки, на которые у него явно нет прав и отваливается по ошибке..
- При инсталле не проверяет права на /common/config/params-prod.php - опять таки отваливается
- Не добавляет юзера в админке (404)
- Аналогичная проблема с правами в композере. Короче пришлось на весь проект кинуть 777 ;)
- Show site в админке ведет в корень сервера, а не в корень проекта

Веб-морда к композеру - интересно;) Но пилить это всё еще.. Работы непочатый край. Успехов в этом начинании!
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

@Koduc, спасибо. Всё учту и постараюсь исправить :)

@porcelanosa по поводу git, всё написано очень доходчиво тут http://git-scm.com/book/ru.
В двух словах по вашему поводу. Делаете форк, клонируете к себе свой форк, создаёте ветку, переходите на неё, делаете изменения, сохраняете, делаете коммит, заливаете на свой форк. Заходите на github свой форк, там есть вкладки по выбору веток, выбираете в той что вели разработку, нажимаете кнопку большую в dashboard "Pull Request" пишите комментарий к своим изменениям и отправляет, ждёте от меня подтверждения или комментариев. Если подтверждение проходит можно свою ветку, где велась разработка слить с master локальной веткой и повторять операцию заново.

@TBIKC обнови конфиги main и param, htaccess с офф репо, там все эти строчки имеются. И если вносить в конфиг свои настройки, то лучше создать param-local или main-local в тех же папках, что и prod настройки и в них уже дописывать свои правила и т.д. Просто сейчас всё сырое и конфиг может очень часто меняться.

И ещё раз спасибо вам большое всем :)
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Airily Skeleton App

Сообщение porcelanosa »

yiijeka писал(а):@Koduc, спасибо. Всё учту и постараюсь исправить :)

@porcelanosa по поводу git, всё написано очень доходчиво тут http://git-scm.com/book/ru.
В двух словах по вашему поводу. Делаете форк, клонируете к себе свой форк, создаёте ветку, переходите на неё, делаете изменения, сохраняете, делаете коммит, заливаете на свой форк. Заходите на github свой форк, там есть вкладки по выбору веток, выбираете в той что вели разработку, нажимаете кнопку большую в dashboard "Pull Request" пишите комментарий к своим изменениям и отправляет, ждёте от меня подтверждения или комментариев. Если подтверждение проходит можно свою ветку, где велась разработка слить с master локальной веткой и повторять операцию заново.
Спасибо - буду пробовать.
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Airily Skeleton App

Сообщение lancecoder »

не помню где, но видел смотрел код - glob не совсем как бы правильно, не для всех ос так скажем
если у меня нет апача, мне мимо проходить?
если я не согласен с вашей структорой мне тоже мимо?
чем это расширение лучше простого использования компосера из КОНСОЛИ, если все модули заточены под КОНКРЕТНЫЙ проект
Ответить