Если вы не один раз начинали новые проекты с использованием Silex, то вы знаете что каждый раз в начале нужно настроить его под себя: добавить провайдеры, переопределить некоторые сервисы, определить структуру каталогов, и т.д. Со временем у вас появляется базовый набор для Silex которые вы используете для создания нового проекта.
Но если у вас его нету, предлагаю ознакомиться вам с моим: Silicone Skeleton.
В Silicone Skeleton включены следующие компоненты:
- HttpCache — работает только в prod окружении.
- Class Controllers — вы можете размещать код контроллеров не только в функциях, но и в методах классов.
- Doctrine Common — вынесен отдельно т.к. используется в нескольких не зависимых провайдерах.
- Doctrine ORM — вы можете пользоваться полноценной ORM (а не только DBAL). Для работы были добавлены следующие команды:
- database:create
- database:drop
- schema:create
- schema:update
- schema:drop
- Monolog — логи пишутся в app/open/log/log.txt
- Session
- Twig — шаблоны лежат в app/view/
- Translation — языковые файлы(yml, xliff) лежат в app/lang/[domain].[locale].yml
- Validators — добавлен недостающий валидатор UniqueEntityValidator для Doctrine Orm
- Forms
- Security — с регистрация и авторизацией пользователей
- Annotation Routes — можно использовать аннотации для роутов и ORM.
- Console — необходимые команды для ORM и очистки кэша.
Структура каталогов очень близка с Symfony
app/ config/ -- Настройки lang/ -- Языковые файлы open/ -- Кэш, логи src/ -- Исходники vendor/ -- Вендоры view/ -- Шаблоны console -- Консоль web/ index.php
Вы можете использовать обычные Silex контроллеры: $app->get(…) вместе с такими контроллерами:
class Blog extends Controller { /** * @Route("/blog/{post}") */ public function post($post) { return $this->render('post.twig'); } }
Так же в Silicone Skeleton полностью настроек Security Provider. И контроллер входа и регистрации.
Для установки используйте Composer:
composer create-project elfet/silicone-skeleton your/app/path
Все желающие помочь с развитием приветствуются!
ссылка на оригинал статьи http://habrahabr.ru/post/182612/
Добавить комментарий