moofik/kitty

此包已被废弃且不再维护。没有建议的替代包。

包容器

0.4.1 2017-12-09 12:27 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