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

Airily Skeleton App

Добавлено: 2013.02.15, 12:51
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 КБ) 477 скачиваний
UPD: Настройка "Человекопонятные URL"

Буду рад вашим идеям и фидбекам.

Re: Airily Skeleton App

Добавлено: 2013.02.17, 10:37
TBIKC
Вау! Достаточно интересный скелет =)

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

Ну т.е. чтобы вместо
backend.php?r=
Было просто backend/
Ну и с главной тоже как нибудь

Re: Airily Skeleton App

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

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

RewriteRule . index.php
RewriteRule . backend.php
не будут работать. Сервер не понимает к какому из них обратиться. Их нужно поместить в разные папки.
Спасибо, подумаю над этим;)

Re: Airily Skeleton App

Добавлено: 2013.02.18, 13:40
yiijeka
@TBIKC
https://github.com/githubjeka/skeletonY ... ba3065571e
Сделал, чтобы работали правила.
День, два потестю и залью в офф репо.

Re: Airily Skeleton App

Добавлено: 2013.02.18, 13:52
TBIKC
Дык давайте сразу в офф, и сразу будем тестить =)
Как то не очень охото сейчас качать форк устанавливать ну и т.д. :)

Re: Airily Skeleton App

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

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

Re: Airily Skeleton App

Добавлено: 2013.02.18, 14:48
TBIKC
Бэк отлично отрабатывает, а вот про фронт я не понял

Re: Airily Skeleton App

Добавлено: 2013.02.18, 14:50
yiijeka
грубо говоря index.php скрыть не удаётся, вместо него обязательно нужно выводить имя , по умолчанию /site/, ну эт пока :)

Re: Airily Skeleton App

Добавлено: 2013.02.18, 14:54
TBIKC
ааа, ладно, надо просто придумать решение, и будет очень элегантный скелетик =))

Re: Airily Skeleton App

Добавлено: 2013.02.18, 15:31
yiijeka
Придумал, сделал, обновил, ... =)

Re: Airily Skeleton App

Добавлено: 2013.02.18, 15:43
TBIKC
Что то на главной не заметно :)
При входе кидает на http://skeletonyiiapp/index.php?r=users

Re: Airily Skeleton App

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

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

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

'urlManager' => array(
  'urlFormat' => 'path',
  'showScriptName' => false,
  'urlSuffix' => '/',
  rules' => $params['url.rules']
),

Re: Airily Skeleton App

Добавлено: 2013.02.18, 17:21
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

Re: Airily Skeleton App

Добавлено: 2013.02.18, 19:57
porcelanosa
А есть какая-нибудь инструкция как сабмитить на Github -
Я сделал форк на github вашего репозитария.
Checkout на локальном сервере из своего форка.
И типа если я сейчас буду, что править, и коммитить, то как это потом к примеру предложить Вам в качестве улучшения.
Где-то в каком то проекте на github читала подробную инструкцию, но не могу найти - а по памяти дальше вышеприведенных двух действий не помню
UPD:
Может это важно. Я под windows - юзаю phpStorm

Re: Airily Skeleton App

Добавлено: 2013.02.18, 20:11
TBIKC
Что то я совсем запутался =)
Раскомментировал ЧПУ urlmanager в бэке и фронте и ничего не работает
в .ht найти не могу такие строчки )

Re: Airily Skeleton App

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

P.S> хороший афоризм пришел на ум. "У каждого программиста - есть свой скелет на GitHub" :-)

Re: Airily Skeleton App

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

Веб-морда к композеру - интересно;) Но пилить это всё еще.. Работы непочатый край. Успехов в этом начинании!

Re: Airily Skeleton App

Добавлено: 2013.02.18, 22:21
yiijeka
@Koduc, спасибо. Всё учту и постараюсь исправить :)

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

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

И ещё раз спасибо вам большое всем :)

Re: Airily Skeleton App

Добавлено: 2013.02.18, 23:58
porcelanosa
yiijeka писал(а):@Koduc, спасибо. Всё учту и постараюсь исправить :)

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

Re: Airily Skeleton App

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