vani8987/mini-framework

Небольшой PHP-фреймворк с роутингом, запросами, ответами, доступом к базе данных, миграциями и логированием.

Maintainers

Package info

github.com/vani8987/mini-framework-in-php

pkg:composer/vani8987/mini-framework

Transparency log

Statistics

Installs: 10

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.2.2 2026-07-21 02:07 UTC

This package is auto-updated.

Last update: 2026-07-21 02:08:29 UTC


README

Небольшой PHP-фреймворк с роутингом, JSON-ответами, запросами, PDO, миграциями, логированием и сессионной авторизацией.

Авторизация

Фреймворк включает авторизацию на основе сессий, защищённые маршруты и контракт модели для поиска пользователей. Описание находится в документации по авторизации.

Рабочая демонстрация находится в app/Controllers/AuthController.php, Routes/api.php и database/Migrations/002_CreateUsers.php.

app/Middleware/AuthMiddleware.php содержит проверку авторизованного пользователя. Метод userAuth() берёт auth_user_id из сессии, проверяет наличие пользователя в таблице users и возвращает true или false.

Возможности

  • Router для URL-маршрутов с параметрами;
  • route-level middleware для проверок до вызова контроллера;
  • Request для данных из POST, query-параметров, cookie, сессии и JSON;
  • Response для JSON-ответов;
  • ConnectDB, CRUD и CreateTable для MySQL через PDO;
  • MigrationManager с историей миграций;
  • Logger с файлами в log/.

CORS

Точка входа разрешает запросы с любого origin, чтобы пример API было удобно проверять через браузер. Перед production-развёртыванием замени * в public/index.php на адреса разрешённых клиентов.

Установка для разработки

composer install

После добавления новых классов или изменения PSR-4 namespace обнови autoload:

composer dump-autoload

Создай .env из .env.example, укажи параметры MySQL и создай базу данных. После этого можно запускать миграции:

php command.php migrate:run

Повторный запуск применит только новые миграции.

Локальный сервер:

php command.php serve

Установка через Composer

новый API-проект можно создать одной командой:

composer create-project vani8987/mini-framework project-name

Демонстрационное API авторизации

Сначала запусти миграции, которые создадут таблицу users:

php command.php migrate:run

В консоли браузера зарегистрируй пользователя:

fetch('/auth/register', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'user@example.com',
    password: 'secret',
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data));

Выполни вход:

fetch('/auth/login', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    email: 'user@example.com',
    password: 'secret',
  }),
})
  .then((response) => response.json())
  .then((data) => console.log(data));

Получи данные текущего пользователя:

fetch('/auth/me')
  .then((response) => response.json())
  .then((data) => console.log(data));

Когда JavaScript и API работают на одном домене и порту, браузер сам отправит cookie сессии после входа.

Доступны маршруты POST /auth/register, POST /auth/login, GET /auth/me и POST /auth/logout.

Структура

Core/                 Классы фреймворка
app/                  Контроллеры API-приложения
Routes/               Регистрация маршрутов приложения
database/Migrations/  Миграции приложения
docs/                 Документация классов
log/                  Логи времени выполнения
public/               HTTP-точка входа

Подробности находятся в docs/README.md.

Лицензия

Проект распространяется по лицензии MIT.

DI-контейнер и bootstrap приложения описаны в docs/container.md.