PHPackages                             zyh/yii2-plugins - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zyh/yii2-plugins

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

zyh/yii2-plugins
================

这是一个插件管理，钩子，事件管理

111PHP

Since Nov 27Pushed 6y ago1 watchersCompare

[ Source](https://github.com/g457165949/yii2-plugins)[ Packagist](https://packagist.org/packages/zyh/yii2-plugins)[ RSS](/packages/zyh-yii2-plugins/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (2)Used By (0)

Plugins
=======

[](#plugins)

这是一个基于Yii的插件管理系统,可使用Yii自带的事件及自定义钩子Hooks来创建自定义的插件

**主要特性**
--------

[](#主要特性)

- 基于Yii模块创建的插件管理系统
    - 支持Yii的局部、全局、Event事件的使用
    - 支持Hook的使用
    - 支持自定义国际化语义
    - 支持自定义模板页面
    - 支持自定义布局
    - 支持自定义安装sql文件
    - 支持安装、卸载、更新、禁用、启用时自定义的方法

安装
--

[](#安装)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require --prefer-dist zyh/yii2-plugins "master-dev"

```

or add

```
"zyh/yii2-plugins": "master-dev"

```

to the require section of your `composer.json` file.

Yii模块配置
-------

[](#yii模块配置)

Once the extension is installed, simply use it in your code by :

```
    //模块配置
    'modules'=>[
        'plugins' => [
            'class' => 'zyh\plugins\Module',
            /*
            //自定义插件管理后台控制controller
            'controllerMap' => [
                'plugins' => [
                    // 指向自己的控制器
                    'class' => 'app\controllers\PluginsController',
                ]
            ],
            'params' => [
                // 插件广场接口
                'apiUrl' => 'http://30071.dev.91gaoding.com/api/plugins',
                // 插件下载接口(返回插件下载地址)
                'downloadUrl' => 'http://30071.dev.91gaoding.com/plugins/download'
                // 返回json {"msg":{"data":{"url":"下载zip地址"}}}
            ],
            */

            /*
             // 可自定义自己页面位置
            'layout' => 'main', // 布局名称
            'layoutPath' => '@app/views/layouts', // 布局位置
            'viewPath' => '@app/views', // 页面位置
            */

            'pluginRoot' => '@app/plugins', ##放置插件的namespace目录
            'pluginNamespace' => 'app\plugins',  ##放置插件的namespace
        ],
        ...
    ]
```

使用方式
----

[](#使用方式)

先对Yii模块进行配置,再拷贝事例中的代码,直接运行

Hook使用
------

[](#hook使用)

```
 Hook::listen('admin_login_init',$params);
```

Yii Event使用
-----------

[](#yii-event使用)

```
// 当前继承的component类
$this->trigger('admin_login_init');

or

// Yii全局事件
\Yii::trigger('admin_login_init')

or

// Event事件
Event::trigger('admin_login_init');
```

插件目录说明
------

[](#插件目录说明)

拷贝example下menu到你创建的pluginRoot目录文件夹下

- [assets](#assets) (js,css,img)资源拷贝项目web目录下
- [controllers](#controllers) 插件控制(必须有)
- [messages](#messages) 自定义语义
- views 插件模板和Yii模板文件使用方式一致(可自定义主题)
- [info.ini](#info) 插件配置(必需有)
- install.sql 插件安装后导入的sql语句
- [Menu.php](#%E6%8F%92%E4%BB%B6%E7%B1%BB) 插件主类(必需有)
- [MenuAsset.php](#%E8%B5%84%E6%BA%90%E7%B1%BB) 如有js,img,css存放地址

assets
------

[](#assets)

```
js/
img
css
```

controllers
-----------

[](#controllers)

```
