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