Delta Framework
Delta Framework - простой фреймворк для разработки веб-проектов. Его разработка была начата в свободное от работы время и выполнялась полностью в свое удовольствие. На текущий момент в нем имеется:
Панель находистя по адресу /admin/ и предоставляет базовые возможности по управлению системой.
Пользовательская часть
Пользовательская часть построена с использованием шаблонизатора Twig. Шаблоны располагаются в папке /templates/. Для приложения имеется единая точка входа - это /index.php. Маршруты располагаются в файле /core/routes.php, а контроллером приложения по умолчанию является файл /core/lib/App.class.php.
Пример нового маршрута
Пример нового обработчика маршрута
Для примера рассмотрим как реализован маршрут с информацией о конкретном пользователе
Начало использования
Для начала получите проект любым удобным для вас способом (git clone, скачать...)
Далее в корне проекта выполните composer install для установки зависимостей.
Так как проект использует базу данных - настройте подключение к ней (/core/config.php)
Для примера выполним миграцию в окружение для разработки
Файл локальной конфигурации является необязательным в случае если переопределение настроек не требуется, однако если его создать - можно точечно переопределить некоторые параметры (например, используемая БД и префикс таблиц).
Доступ к панели управления находится тут https://site.ru/admin/
Логин и пароль по умолчанию admin / admin
Актуальная версия доступна по ссылке ниже.
GitHub: https://github.com/rsgrinko/delta_framework
- Авторизация
- Регистрация
- Роли пользователей
- Верификация E-Mail
- Рассылки почты
- Поддержка шаблонов почтовых отправлений
- Менеджер очереди заданий
- Шаблонизатор
- Поддержка маршрутизации
- REST API
- Кеширование
- Логирование
- Работа с файлами
- Миграции
- Captcha
- DDoS Guard (basic)
- Панель администратора
Панель находистя по адресу /admin/ и предоставляет базовые возможности по управлению системой.
Пользовательская часть
Пользовательская часть построена с использованием шаблонизатора Twig. Шаблоны располагаются в папке /templates/. Для приложения имеется единая точка входа - это /index.php. Маршруты располагаются в файле /core/routes.php, а контроллером приложения по умолчанию является файл /core/lib/App.class.php.
Пример нового маршрута
/** * Добавим маршрут, который открывает страницу информации о конкретном пользователе * URL может иметь вид https://site.ru/users/123 * 123 в даннмо случае идентификатор пользователя * * Вторым аргументом следует метод класса, который будет обрабатывать данный запрос * В текущем примере это класс \Core\App и его метод userProfile (туда передается идентификатор пользователя из запроса) */ Router::route('/users/(\d+)', '\Core\App::userProfile'); /** * Также добавим новый маршрут, который не будет вызывать метод, а сам отдаст результат */ Router::route('/test', function () { echo 'This is test page!'; });
Пример нового обработчика маршрута
Для примера рассмотрим как реализован маршрут с информацией о конкретном пользователе
/** * В данном обработчике мы принимаем идентификатор пользователя (из примера выше) * и показываем информацию о нем. * * Метод self::render() принимает в качестве аргумента файл шаблона * и массив данных для подстановки в сам шаблон. * Также он производит дополнение переданных данных обязательными полями, * такими как: авторизован ли, админ ли, данные текущего пользователя... */ public static function userProfile(int $id) { $userData = (new User($id))->getAllUserData(true); self::render('userProfile.twig', ['userData' => $userData]); }
Начало использования
Для начала получите проект любым удобным для вас способом (git clone, скачать...)
Далее в корне проекта выполните composer install для установки зависимостей.
Так как проект использует базу данных - настройте подключение к ней (/core/config.php)
/** Параметры SQL базы */ const DB_HOST = 'localhost'; const DB_USER = 'vasya'; const DB_PASSWORD = 'mysuperpassword'; const DB_NAME = 'deltacore';Также настройте Phinx для использования миграций (/phinx.php)
'host' => 'localhost', 'name' => 'deltacore', 'user' => 'vasya', 'pass' => 'mysuperpassword',Далее потребуется выполнить непосредственно сами миграции. В зависимости от окружения используйте dev или prod.
Для примера выполним миграцию в окружение для разработки
vendor/bin/phinx migrate -e devДля использования некой многосайтовости предусмотрено подключение локального файла конфигурации.
Пример: вы примонтировали в рядом лежащий проект папки /core/, /upload/, /admin/. Вам следует создать в корне проекта файл config.local.php и переопределить параметры для текущего проекта.
Файл локальной конфигурации является необязательным в случае если переопределение настроек не требуется, однако если его создать - можно точечно переопределить некоторые параметры (например, используемая БД и префикс таблиц).
Доступ к панели управления находится тут https://site.ru/admin/
Логин и пароль по умолчанию admin / admin
Актуальная версия доступна по ссылке ниже.
GitHub: https://github.com/rsgrinko/delta_framework