vittozich / modulara
There is no license information available for the latest version (v0.4.0) of this package.
make modules great again
v0.4.0
2023-03-30 20:45 UTC
Requires
- php: ^8.2
- laravel/framework: ^10
- spatie/data-transfer-object: ^3.9
README
Библиотека для модульной архитектуры в Laravel.
Совместимость
- PHP:
^8.2 - Laravel:
^10 || ^11 || ^12
Что делает пакет
- Автоматически ищет модули в
app/Modular/Modules. - Автоматически подключает модульные:
- маршруты (
Routes/web.php,Routes/api.php) - вьюшки (
Views/*) - миграции (
Migrations/*)
- маршруты (
- Публикует базовую структуру
app/Modular/Baseдля наследования. - Поддерживает кэш путей модулей (routes/views/migrations).
Быстрый старт
- Подключить пакет через Composer.
- Опубликовать конфиг:
php artisan modulara:config
- Опубликовать базовую структуру:
php artisan modulara:base
Команды
php artisan modulara:config— публикацияconfig/modulara.phpphp artisan modulara:config --force— перезаписать конфигphp artisan modulara:base— публикацияapp/Modular/Basephp artisan modulara:base --force— перезаписать base-файлыphp artisan modulara:cache-clear— очистить кэш путей модулей
Структура модульности
Корень модульности в приложении:
app/Modular/Modules
Минимальный модуль:
Routes(web.phpи/илиapi.php)Views(если модуль рендерит UI)Migrations(если модуль хранит миграции)
Рекомендуемые директории модуля:
ControllersActionsDTOsRepositoriesModelsTests
Конфиг config/modulara.php
return [ 'nesting_level' => 1, 'cache' => [ 'enabled' => true, 'store' => 'file', 'ttl_seconds' => 3600, 'key_prefix' => 'modulara', 'disabled_on_envs' => [ 'local', 'dev', 'development', 'test', ], ], ];
Параметры
nesting_level— максимальная глубина вложенности модулей.cache.enabled— включает/выключает кэш путей модулей.cache.store— Laravel cache store для кэша Modulara (по умолчаниюfile).cache.ttl_seconds— TTL кэша в секундах.<= 0илиnull=>rememberForever.cache.key_prefix— префикс ключей кэша.cache.disabled_on_envs— списокAPP_ENV, где кэш автоматически отключается.
Как работает кэш
Кэшируются результаты поиска директорий:
RoutesViewsMigrations
Это ускоряет boot приложения при большом количестве модулей.
По умолчанию:
- используется
filestore, - кэш выключен в окружениях:
local,dev,development,test.
Когда очищать кэш
После изменений структуры модулей (добавили/переименовали/удалили папки Routes/Views/Migrations):
php artisan modulara:cache-clear
Проверка работоспособности
- Убедиться, что команды
modulara:*доступны вphp artisan list. - Создать тестовый модуль в
app/Modular/Modulesи проверить, что маршрут доступен. - Проверить, что модульные вьюшки и миграции подхватились автоматически.