Download the PHP package remetulla/tinymvc-php without Composer
On this page you can find all versions of the php package remetulla/tinymvc-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download remetulla/tinymvc-php
More information about remetulla/tinymvc-php
Files in remetulla/tinymvc-php
Package tinymvc-php
Short Description Mini MVC framework in Yii2 style
License Apache-2.0
Informations about the package tinymvc-php
TinyMVC
Мини-фреймворк на PHP в стиле Yii2 (упрощённый MVC): web/index.php → Router → Controller → View/Layout, простые компоненты из конфига, ActiveRecord/Query, i18n, ассеты, обработка ошибок и логирование.
Репозиторий:
remetulla17771/tinymvc
Лицензия: Apache 2.0 (см.LICENSE)
Возможности
- Front Controller: единая точка входа
web/index.php. - Routing:
/{controller}/{action}+ параметры через$_GET(Reflection). - Modules: префикс в URL
/{module}/{controller}/{action}(пример:/admin/site/index). - MVC: контроллеры в
app/controllers, view вviews/<controller>, layout вviews/layouts. - Компоненты (мини DI-контейнер): создаются из
app/config/web.phpи доступны как свойства$this->user,$this->urlManager,$this->lang,$this->response, и т.д. - DB: PDO singleton (
app/Db.php). - ActiveRecord: базовый CRUD +
Query(where(),one(),all(),limit/offset/orderBy/count). - Response: HTML/JSON/redirect, с
send(). - i18n: переводы в
app/messages/<lang>/<category>.php(ru,kk,pr). - Ошибки:
ErrorHandlerловит exception/error/fatal, пишет логи вruntime/logs. - Console Gii: генераторы кода через
bin/console.php.
Требования
- PHP 7.4+
- Apache +
mod_rewrite(или nginx с rewrite наweb/index.php) - MySQL/MariaDB (если используешь модели с БД)
- Composer (рекомендуется)
Установка (Composer)
В корне проекта:
Убедись, что в web/index.php и bin/console.php подключён autoload:
Структура проекта
Быстрый старт (OpenServer / Apache)
1) Размести проект в домене (например tinymvc.loc).
2) DocumentRoot должен быть .../tinymvc/web (важно).
3) Проверь, что .htaccess работает (mod_rewrite включён).
Открой:
http://tinymvc.loc/→ по умолчаниюsite/index
web/.htaccess
Как работает запрос
1) web/index.php:
- стартует session
- регистрирует
ErrorHandler - подключает autoload
- создаёт
new app\App()и вызываетrun()
2) App:
- создаёт
Request,Router - грузит
app/config/web.php - создаёт компоненты и кладёт их в
$this-><key>
3) Router::resolve():
- определяет
controller/actionпо сегментам URL - если первый сегмент совпадает с папкой в
modules/— это module - вызывает
Controller::actionX(...)через Reflection - если action вернул
Response→ вызываетsend()
Routing
Формат:
/{controller}/{action}/{module}/{controller}/{action}- параметры action берутся из
$_GETпо имени параметра
Примеры:
/site/view?id=5→SiteController::actionView($id)/admin/site/index→modules\admin\controllers\SiteController::actionIndex()
Контроллеры
Файл: app/controllers/SiteController.php
Класс: SiteController
Методы: actionIndex(), actionView($id), и т.д.
Пример:
Views и Layouts
- View:
views/<controller>/<view>.php - Layout:
views/layouts/main.php(по умолчанию)
Для модулей:
- View:
modules/<module>/views/<controller>/<view>.php - Layout:
modules/<module>/views/layouts/main.php
Рендер из контроллера:
render($view, $params)— view + layoutrenderPartial($view, $params)— только view
Компоненты и конфиг
app/config/web.php:
i18n (переводы)
Файлы: app/messages/<lang>/<category>.php (ru, kk, pr).
Использование:
База данных
Настройка
app/config/db.php:
Важно: не храни реальные пароли в git. Вынеси в
.env/db.local.phpи добавь в.gitignore.
Console Gii (консольные генераторы)
Показать список команд:
make:controller
make:model
make:crud
Опции:
--table=...— обязательно (если модель не умеетtableName()).--controller=Имя— имя контроллера (безController).--modelNamespace=app\models— где искать модель (по умолчаниюapp\models).--module=admin— генерирует внутрьmodules/adminи строит ссылки/admin/<controller>/<action>.--force— перезаписать файлы.
Важно:
make:modelиmake:crudтребуют рабочее подключение к БД (Db::getInstance()), иначе не смогут прочитать схему таблицы.
Модули
make:module
Создаёт модуль со стартовым контроллером/вьюшкой/лейаутом:
Создаст:
modules/admin/Module.phpmodules/admin/controllers/SiteController.phpmodules/admin/views/layouts/main.phpmodules/admin/views/site/index.php
Проверка:
- открой
/admin/site/index
Миграции
make:migration
Создаёт файл миграции в папке migrations/:
migrate
Применяет/откатывает миграции. Состояние хранится в таблице migration (по умолчанию).
Применить все новые миграции:
Откатить последнюю миграцию:
Опции:
--dir=migrations— папка миграций--table=migration— имя таблицы для учёта применённых миграций
Базовый класс Migration
Файл: app/Migration.php. В миграциях доступны хелперы:
createTable($table, $columns, $options)dropTable($table)addColumn($table, $column, $type)dropColumn($table, $column)createIndex($name, $table, $columns, $unique=false)dropIndex($name, $table)
Типы:
$this->pk(),$this->int(),$this->bool(),$this->string($len),$this->text(),$this->datetime(),$this->timestamp(),$this->decimal($p,$s)- модификаторы:
$this->notNull(),$this->defaultValue($v),$this->defaultExpr('CURRENT_TIMESTAMP')
Безопасность
Сейчас в проекте может встречаться plain-text работа с паролями. Для реального проекта:
- используй
password_hash()/password_verify() - вынеси секреты (DB, токены) из репозитория
- исключи логи и конфиги из git
Рекомендуемый .gitignore:
Лицензия
Apache License 2.0 — см. файл LICENSE.