承接 snr/plugin 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

snr/plugin

最新稳定版本:1.0.0

Composer 安装命令:

composer require snr/plugin

包简介

Реализует систему типов (плагинов), классы которых помечаются аннотациями или атрибутами (вдохновлено Plugin API Drupal 8)

README 文档

README

Позволяет разработчикам описывать свои собственные типы бизнес сущностей. Так, можно создать класс, пометить его специальной аннотацией и система "распознает" его как один из типов вашей сущности. Далее с помощью встроенного класса менеджера можно создавать экземпляры этих классов.

Установка

composer require snr/plugin

Использование

Все примеры смотрите в tests\PluginManagerTest.php

  1. Сначала нужно определить свой "Менеджер плагинов". Создайте класс, наследующий класс DefaultPluginManager, как это сделано в примере - классе TestPluginManager.
  2. Так, в конструкторе TestPluginManager мы передаём базовому классу: папку, где будут классы экземпляров (параметр subdir); класс этих экземпляров (параметр plugin_interface); класс для аннотации (plugin_definition_annotation_name).
  3. Определить папку, где у вас будут находиться классы ваших типов (плагинов). В тестовом примере это папка Plugin. У вас может быть любая другая. Передаётся через параметр 'subdir' конструктора DefaultPluginManager'а.
  4. Создать свой класс аннотации для экземпляров или использовать класс Plugin, который идёт по умолчанию. Передаётся через параметр 'plugin_definition_annotation_name' конструктора DefaultPluginManager'а.
  5. Создать свой интерфейс для экземпляров, примером является интерфейс TestPluginInterface. Передаётся через параметр 'plugin_interface' конструктора DefaultPluginManager'а.
  6. Создать свои классы, каждый из которых описывает один из типов экземпляров. В тестовм примере это класс TestPlugin.
  7. В коде создать экземпляр вашего "Менеджера плагинов". Вызвать его метод createInstance, получив экземпляр нужного вам класса. См. пример в PluginManagerTest.php.

统计信息

  • 总下载量: 37
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2025-06-09