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

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