快速入门

插件是基于EduSoho系统下可自由安装卸载掉的程序。在不影响EduSoho系统代码的情况下,可自由扩展新功能。那么如何创建插件呢,EduSoho系统提供了一组插件命令,可以对插件进行快速操作。

创建插件

创建插件的初始目录结构:

app/console plugin:create Example

使用此命令会在plugins目录下创建名为Example的插件初始目录结构,参见目录结构

注册插件

注册插件:

app/console plugin:register Example

注册插件,但不创建数据库:

app/console plugin:register Example --without-database

开发模式下,建议使用--without-database选项。您可在执行此命令之后,使用:bin/phpmig migrate命令来创建数据库,这样数据库的变更就纳入了phpmig的管理,方便开发过程中调整数据库。
插件注册后,即可在后台->教育云->ES应用->已购项目中查看。

卸载插件

卸载插件(默认不删除数据库):

app/console plugin:remove Example

卸载插件,删除数据库:

app/console plugin:remove Example --with-deleting-database

卸载插件,删除数据库及插件源码目录:

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

{
    "code": "Demo",
    "name": "演示插件",
    "description": "这是一个演示插件",
    "author": "EduSoho官方",
    "version": "1.0.0",                 
    "support_version": "8.0.0"          
}
  • version:插件版本
  • support_version: 支持EduSoho系统的版本

引导文件

即插件目录下的DemoPlugin.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根目录通过命令行生成脚本文件:

  bin/phpmig generate create_demo_table plugins/DemoPlugin/Migrations/
  • create_demo_table:类名,以_分隔。
  • plugins/DemoPlugin/Migrations/:插件Migrations目录路径

results matching ""

    No results matching ""