## ginkgo\Plugin 插件管理调度 ---------- ### 类摘要 ```php namespace ginkgo; class Plugin { // 属性 protected static $instance = array(); private static $listeners = array(); private static $obj_file; private static $init; // 方法 public static add( string $hook, object &$object, string $method ) public static listen( string $hook [, mixed $data ] ) : mixed private static init() private static configProcess( string $dir ) : array private static dirProcess( mixed $key, mixed $value ) : string private static namespaceProcess( string $dir, array $config ) : string } ``` ---------- ### 成员目录 | - | 权限 | 类型 | 描述 | | - | - | - | - | | 属性 | - | - | - | | `$instance` | protected | array static | 用静态属性保存实例 | | 方法 | - | - | - | | [add()](#add()) | public | static | 将插件方法挂载到钩子 | | [listen()](#listen()) | public | static | 在系统内埋设钩子 | | [init()](#init()) | private | static | 初始化 | | [configProcess()](#configProcess()) | private | static | 插件配置处理 | | [dirProcess()](#dirProcess()) | private | static | 插件目录处理 | | [namespaceProcess()](#namespaceProcess()) | private | static | 插件命名空间处理 | ---------- #### `add()` 将插件方法挂载到钩子 ``` php public static function add( string $hook, object &$object, string $method ) ``` 参数 * `hook` 钩子名称 * `object` 插件实例 * `method` 执行插件的方法 返回 * 无 ---------- #### `listen()` 在系统内埋设钩子 ``` php public static function listen( string $hook [, mixed $data ] ) : mixed ``` 参数 * `hook` 钩子名称 * `data` 数据 返回 * 插件处理后的数据 ---------- #### `init()` 初始化 ``` php public static function init() ``` 参数 * 无 返回 * 无 ---------- #### `configProcess()` 插件配置处理 ``` php public static function configProcess( string $dir ) : array ``` 参数 * `dir` 目录 返回 * 插件配置 ---------- #### `dirProcess()` 插件目录处理 ``` php public static function dirProcess( mixed $key, mixed $value ) : string ``` 参数 * `key` 键名 * `value` 值 返回 * 目录名 ---------- #### `namespaceProcess()` 插件命名空间处理 ``` php public static function namespaceProcess( string $dir, array $config ) : string ``` 参数 * `dir` 目录 * `config` 配置 返回 * 命名空间