moofik / kitty
此包已被废弃且不再维护。没有建议的替代包。
包容器
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包将可以通过composer直接安装。kitty容器将自动识别并嵌入这些已下载的包。
- 此外,还为开发者提供了一个广泛的API来开发Kitty平台的模块。
- 当前项目版本:0.4.0
容器中是否可以安装其他模块?
- 目前只有测试模块helloworld
- 目前正在开发电子商务模块
发展前景?
- 计划将平台分叉到Symfony
我可以在自己的Laravel构建中安装此项目吗?
- 是的。在packagist的包名(repository)为: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 - тип обёртки (конфигурационная или базовая).
如何联系项目作者?
- 电子邮箱:moofik12@gmail.com