yii2-plugins-system

Yii2 plugins system module with event manager and https://github.com/loveorigami/yii2-shortcodes-pack

Github星跟踪图

Getting started with Yii2-plugins-system

Latest Stable Version
Total Downloads
License

Yii2-plugins-system is designed to work out of the box. It means that installation requires
minimal steps. Only one configuration step should be taken and you are ready to
have plugin system on your Yii2 website.

"Plugins"

1. Download

Yii2-plugins-system can be installed using composer. Run following command to download and
install Yii2-plugins-system:

composer require "loveorigami/yii2-plugins-system": ">=3.*"

2. Update database schema

The last thing you need to do is updating your database schema by applying the
migrations. Make sure that you have properly configured db application component,
add in our console config namespace migration - more here

return [
    'controllerMap' => [
        'migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationNamespaces' => [
                 ...
                'lo\plugins\migrations'
            ],
        ],
    ],
];

and run the following command:

$ php yii migrate

3. Configure application

Let's start with defining module in @backend/config/main.php:

'modules' => [
    'plugins' => [
        'class' => 'lo\plugins\Module',
        'pluginsDir'=>[
            '@lo/plugins/core', // default dir with core plugins
            // '@common/plugins', // dir with our plugins
        ]
    ],
],

That's all, now you have module installed and configured in advanced template.

Next, open @frontend/config/main.php and add following:

...
'bootstrap' => ['log', 'plugins'],
...
'components' => [
    'plugins' => [
        'class' => lo\plugins\components\PluginsManager::class,
        'appId' => 1 // lo\plugins\BasePlugin::APP_FRONTEND,
        // by default
        'enablePlugins' => true,
        'shortcodesParse' => true,
        'shortcodesIgnoreBlocks' => [
            '<pre[^>]*>' => '<\/pre>',
            //'<div class="content[^>]*>' => '<\/div>',
        ]
    ],
    'view' => [
        'class' => lo\plugins\components\View::class,
    ]
    ...
]

Also do the same thing with

  • @backend/config/main.php
  • @console/config/main.php
  • @api/config/main.php
  • our modules
  • etc...
...
'bootstrap' => ['log', 'plugins'],
...
'components' => [
    'plugins' => [
        'class' => lo\plugins\components\PluginsManager::class,
        'appId' => 2 // lo\plugins\BasePlugin::APP_BACKEND or our appId
    ],
    'view' => [
        'class' => lo\plugins\components\View::class,
    ]
    ...
]

Base AppId lo\plugins\BasePlugin::

  • const APP_FRONTEND = 1;
  • const APP_BACKEND = 2;
  • const APP_COMMON = 3;
  • const APP_API = 4;
  • const APP_CONSOLE = 5;

Shortcodes

Core plugins (examples)

Your plugins

Contributing to this project

Anyone and everyone is welcome to contribute. Please take a moment to
review the guidelines for contributing.

License

Yii2-plugins-system is released under the MIT License. See the bundled LICENSE.md
for details.

主要指标

概览
名称与所有者loveorigami/yii2-plugins-system
主编程语言PHP
编程语言PHP (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2015-08-02 15:39:20
推送于2019-03-12 11:10:42
最后一次提交2019-03-12 14:10:40
发布数10
最新版本名称3.1.5 (发布于 )
第一版名称1.0-rc (发布于 2015-08-02 19:18:33)
用户参与
星数115
关注者数19
派生数23
提交数145
已启用问题?
问题数21
打开的问题数0
拉请求数0
打开的拉请求数0
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?