moofik / kitty
This package is abandoned and no longer maintained.
No replacement package was suggested.
Container for packages
0.4.1
2017-12-09 12:27 UTC
Requires
- php: >=7.0.0
- laravel/framework: 5.5.*
Requires (Dev)
- phpunit/phpunit: ~5.7
- dev-master
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.1
- 0.1.1
- 0.1.0
- dev-fix-kitty-exceptions
- dev-backdoor
- dev-@feature-redis-queue
- dev-refactoring_vue_users_roles_component
- dev-new-kitty-vue-users-component
- dev-kit-publish-assets-command
- dev-kitty-new-authorization-functionality
- dev-task-injector-and-refactoring
- dev-kit-new-permissions-task
This package is auto-updated.
Last update: 2018-07-29 21:58:40 UTC
README
Что это за проект?
- Платформа-контейнер для модулей, который умеет автоматически определять другие модули, которые можно встроить внутрь себя. Каждый встраиваемый модуль сам по себе так-же является контейнером и может встраивать в себя другие модули. Каждый модуль представляет собой отдельный MVC-пакет, со своими контроллерами, представлениями, моделями, миграциями и консольными командами.
- Цель проекта: дать пользователю возможность создать из готовых пакетов composer для данной системы (kitty - модули), абсолютно кастомизируемую систему, подходящую именно ему, изначально представляющую из себя лишь простую админ-панель панель с возможностью авторизации, без каких либо плюшек.
- В дальнейшем все требуемые конкретному разработчику/пользователю пакеты для kitty планируется просто устанавливать композером. Эти загруженные пакеты контейнер kitty будет подхватывать автоматически и встраивать внутрь себя.
- Кроме того, для разработчиков предоставляется широкий API по разработке модулей для платформы Kitty.
- Текущая версия проекта: 0.4.0
Доступны ли для установки в контейнер какие либо модули?
- На данный момент, никакие кроме тестового модуля helloworld
- На данный момент ведется разработка модуля e-commerce (электронной коммерции)
Перспективы развития?
- Планируется форк платформы на Symfony
Могу ли я установить данный проект в свою сборку Laravel?
- Да. Название пакета в репозитории композера (packagist): moofik/kitty, последняя версия 0.4.0
API (на данный момент описано частично)
- ModuleService::class
Все сервис провайдеры наследующие от класса ModuleServiceProvider имеют доступ к объекту
ModuleService. Этот объект является экземпляром сервиса, который представляет один, конкретный
модуль.
Методы:
ModuleService::getConfig() - получить конфиг-репозиторий текущего модуля
ModuleService::getName() - получить систмное имя текущего модуля
ModuleService::getDisplayName() - получить имя текущего модуля "для отображения"
ModuleService::getNamedLink() - получить массив вида "сс"
ModuleService::getStartRoute() - получить базовый роут модуля (обычно это роут страницы модуля в админ-панели)
ModuleService::getModulesRegistry() - получить экземпляр реестра модулей
ModuleService::addProviderToApp(Class $class) - добавить сервис провайдер $class в файл config/app.php
- ModuleRegistry::class
Общий реестр модулей с объектной (non-static) обёрткой.
Может передаваться в класс при помощи DI.
Методы:
ModuleService::getAllExceptContainerModule() - получить список всех загруженных модулей, кроме модуля базового контейнера.
ModuleService::getAll() - получить список всех загруженных модулей
ModuleService::getParameter($module, $key) - получить значение $key конфигурационного файла модуля.
ModuleService::addParameter($module, $key, $value) - добавить параметр $value к модулю $module, по ключу $key
- ConfigRepository::class
Репозиторий конфигурационных файлов, обладает возможностью статического изменения файлов
(в официальной версии Laravel убраную из функционала класса Config). Может быть проинициализирован исключительно с помощью
объекта PathWrapper::class.
@see PathWrapper::class
@see Illuminate\Contracts\Config\Repository
Методы:
ConfigRepository::__construct(PathWrapper $pathWrapper) - конструктор, принимающий объект PathWrapper
ConfigRepository::has($key) - определить, существует ли данное значение
ConfigRepository::get($key) - получить значение $key
ConfigRepository::prepend($key, $value) - вставить связку ключ-значение в начало конфигурационного файла
ConfigRepository::set($key, $value) - установить параметр $value по ключу $key в загруженном файле конфигурации
ConfigRepository::push($key, value) - вставить связку ключ-значение в конец конфигурационного файла
ConfigRepository::reinitialize(PathWrapper $pathWrapper) - реиницилизировать конфиг-репозиторий с помощью объекта PathWrapper
ConfigRepository::emergencyReload() - загрузить настройки по-умолчанию (берется конфиг файл из директории модуля)
- PathWrapper::class
Объектная обертка над путем до системного файла
Методы:
PathWrapper::getDottedPath() - возвращает путь до файла, в нотации "через точку"
PathWrapper::getAbsolutePath() - возвращает абсолютный путь до файла
PathWrapper::getNormalizedPath() - возвращает относительный путь до файла от корневой папки приложения
PathWrapper::getPackagePath() - возвращает относительный путь до файла от корневой папки текущего модуля
PathWrapper::getBaseDir() - возвращает корневую папку текущего модуля
PathWrapper::instantiate(string $anypath, string $baseDir, string $type) - статичный фабричный метод, генерирует различные объекты PathWrapper на основе аргументов:
$anypath - строка-путь к файла в любой нотации (строка с указанием файла в нотации "через точку",
либо указание относительного пути файла)
$baseDir - базовая директория текущего модуля
$type - тип обёртки (конфигурационная или базовая).
Как связаться с автором проекта?
- e-mail: moofik12@gmail.com