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目录路径