插件

2018-06-26 18:54 更新

说明

Extension 作为 Notadd Framework 的一个特性存在,允许通过 Extension 的方式对 Notadd Framework 进行功能或模板的扩展。 Extension 的机制类似于 Laravel 中 Service Provider 的机制,提供了一种实现组件化的机制,并可以实现传统插件机制中的安装、卸载以及插件启动过程。

基本结构

一个完整的 Notadd Extension ,必然是遵循 Composer 相关规范的 Package。

目录结构

插件位于目录 extensions 下,插件目录结构如下

vendor 厂商目录
-extension 插件目录
--configuations 可加载配置文件目录
--resources 资源目录
---translations 翻译文件目录
---views 视图目录
--src 源码目录
---Extension 扩展服务提供者定义文件
--composer.json Composer 配置文件

  • Extension
  • Resources
  • Composer

其他说明

  • composer.json 中需定义 type 为 notadd-extension
  • composer.json 中需依赖 package 为 notadd/installers

Extension 结构

Extension 的机制类似于 Laravel 中 Service Provider 的机制,提供了一种实现组件化的机制,并可以实现传统插件机制中的安装、卸载以及插件启动过程。

基本结构

一个完整的 Notadd Extension ,必然是遵循 Composer 相关规范的 Package。

目录结构

插件位于目录 extensions 下,插件目录结构如下

vendor 厂商目录
-extension 插件目录
--configuations 可加载配置文件目录
--resources 资源目录
---translations 翻译文件目录
---views 视图目录
--src 源码目录
---bootstrap.php 插件启动脚本
--composer.json Composer 配置文件

其他说明

  • composer.json 中需定义 type 为 notadd-module
  • composer.json 中需依赖 package 为 notadd/installers

Composer

通过对 Composer 的自定义,可以实现 Composer 自动加载 Extension 定义的依赖项。

Type

配置 type 属性为 notadd-extension

Require

添加 notadd/installers 的 Package,才能实现 Composer 自动加载 Extension 定义的依赖项。

完整示例

{
    "name": "notadd/extension-demo",
    "description": "Notadd's Demo Extension.",
    "type": "notadd-extension",
    "keywords": ["notadd", "demo", "extension"],
    "homepage": "https://notadd.com",
    "license": "Apache-2.0",
    "authors": [
        {
            "name": "twilroad",
            "email": "heshudong@ibenchu.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "Notadd\\Demo\\": "src/"
        }
    },
    "require": {
        "php": ">=7.0",
        "notadd/installers": "0.5.*"
    }
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号