Appearance
快速入门
插件是基于EduSoho系统下可自由安装卸载掉的程序。在不影响EduSoho系统代码的情况下,可自由扩展新功能。那么如何创建插件呢,EduSoho系统提供了一组插件命令,可以对插件进行快速操作。
创建插件
创建插件的初始目录结构:
bash
app/console plugin:create Example
使用此命令会在plugins
目录下创建名为Example
的插件初始目录结构,参见目录结构。
注册插件
注册插件:
bash
app/console plugin:register Example
注册插件,但不创建数据库:
bash
app/console plugin:register Example --without-database
开发模式下,建议使用--without-database
选项。您可在执行此命令之后,使用:bin/phpmig migrate
命令来创建数据库,这样数据库的变更就纳入了phpmig
的管理,方便开发过程中调整数据库。
插件注册后,即可在后台->教育云->ES应用->已购项目中查看。
卸载插件
卸载插件(默认不删除数据库):
bash
app/console plugin:remove Example
卸载插件,删除数据库:
bash
app/console plugin:remove Example --with-deleting-database
卸载插件,删除数据库及插件源码目录:
bash
app/console plugin:remove Example --with-deleting-database --with-deleting-source
目录结构
如果您的插件名称为Demo
那么目录结构为:
plugins/
DemoPlugin/
Biz/ ----业务目录
Dao/
Service/
Controller/ ----控制层目录
DependencyInjection
Configuration.php
DemoPluginExtension.php
Migrations/ ----升级脚本目录
Resources/
config
static-dist ----静态资源(编译后)
static-src ----静态资源js,less,img,font
views ----视图层(twig页面)
Scripts/ ----安装脚本目录
BaseInstallScript.php
InstallScript.php
DemoPlugin.php
plugin.json ----插件相关信息文件
元信息文件
即插件目录下的plugin.json
:
json
{
"code": "Demo",
"name": "演示插件",
"description": "这是一个演示插件",
"author": "EduSoho官方",
"version": "1.0.0",
"support_version": "8.0.0"
}
- version:插件版本
- support_version: 支持EduSoho系统的版本
引导文件
即插件目录下的DemoPlugin.php
:
php
<?php
namespace DemoPlugin;
use Codeages\PluginBundle\System\PluginBase;
class DemoPlugin extends PluginBase
{
/*
public function boot()
{
$biz = $this->container->get('biz');
parent::boot();
}
*/
}
DemoPlugin
类必须继承自Codeages\PluginBundle\System\PluginBase
类。- 可以通复写
boot()
方法往biz
中注入自定义服务。
Migrations 目录
该目录是多人协同开发时的脚本文件目录,方便开发时数据库的修改。可在EduSoho根目录通过命令行生成脚本文件:
bash
bin/phpmig generate create_demo_table plugins/DemoPlugin/Migrations/
create_demo_table
:类名,以_分隔。plugins/DemoPlugin/Migrations/
:插件Migrations
目录路径