Silicone Skeleton — настроенный Silex

в 15:37, , рубрики: php, silex, symfony, метки: ,

Silicone Skeleton — настроенный Silex
Если вы не один раз начинали новые проекты с использованием Silex, то вы знаете что каждый раз в начале нужно настроить его под себя: добавить провайдеры, переопределить некоторые сервисы, определить структуру каталогов, и т.д. Со временем у вас появляется базовый набор для Silex которые вы используете для создания нового проекта.
Но если у вас его нету, предлагаю вам ознакомиться с моим: Silicone Skeleton.

В Silicone Skeleton включены следующие компоненты:

  • HttpCache — работает только в prod окружении.
  • Class Controllers — вы можете размещать код контроллеров не только в функциях, но и в методах классов.
  • Doctrine Common — вынесен отдельно т.к. используется в нескольких не зависимых провайдерах.
  • Doctrine ORM — вы можете пользоваться полноценной ORM (а не только DBAL). Для работы были добавлены следующие команды:
    1. database:create
    2. database:drop
    3. schema:create
    4. schema:update
    5. 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

Все желающие помочь с развитием приветствуются!

Автор: Elfet

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js