插件

2018-06-26 18:54 更新

說(shuō)明

Extension 作為 Notadd Framework 的一個(gè)特性存在,允許通過(guò) Extension 的方式對(duì) Notadd Framework 進(jìn)行功能或模板的擴(kuò)展。 Extension 的機(jī)制類似于 Laravel 中 Service Provider 的機(jī)制,提供了一種實(shí)現(xiàn)組件化的機(jī)制,并可以實(shí)現(xiàn)傳統(tǒng)插件機(jī)制中的安裝、卸載以及插件啟動(dòng)過(guò)程。

基本結(jié)構(gòu)

一個(gè)完整的 Notadd Extension ,必然是遵循 Composer 相關(guān)規(guī)范的 Package。

目錄結(jié)構(gòu)

插件位于目錄 extensions 下,插件目錄結(jié)構(gòu)如下

vendor 廠商目錄
-extension 插件目錄
--configuations 可加載配置文件目錄
--resources 資源目錄
---translations 翻譯文件目錄
---views 視圖目錄
--src 源碼目錄
---Extension 擴(kuò)展服務(wù)提供者定義文件
--composer.json Composer 配置文件

  • Extension
  • Resources
  • Composer

其他說(shuō)明

  • composer.json 中需定義 type 為 notadd-extension
  • composer.json 中需依賴 package 為 notadd/installers

Extension 結(jié)構(gòu)

Extension 的機(jī)制類似于 Laravel 中 Service Provider 的機(jī)制,提供了一種實(shí)現(xiàn)組件化的機(jī)制,并可以實(shí)現(xiàn)傳統(tǒng)插件機(jī)制中的安裝、卸載以及插件啟動(dòng)過(guò)程。

基本結(jié)構(gòu)

一個(gè)完整的 Notadd Extension ,必然是遵循 Composer 相關(guān)規(guī)范的 Package。

目錄結(jié)構(gòu)

插件位于目錄 extensions 下,插件目錄結(jié)構(gòu)如下

vendor 廠商目錄
-extension 插件目錄
--configuations 可加載配置文件目錄
--resources 資源目錄
---translations 翻譯文件目錄
---views 視圖目錄
--src 源碼目錄
---bootstrap.php 插件啟動(dòng)腳本
--composer.json Composer 配置文件

其他說(shuō)明

  • composer.json 中需定義 type 為 notadd-module
  • composer.json 中需依賴 package 為 notadd/installers

Composer

通過(guò)對(duì) Composer 的自定義,可以實(shí)現(xiàn) Composer 自動(dòng)加載 Extension 定義的依賴項(xiàng)。

Type

配置 type 屬性為 notadd-extension。

Require

添加 notadd/installers 的 Package,才能實(shí)現(xiàn) Composer 自動(dòng)加載 Extension 定義的依賴項(xiàng)。

完整示例

{
    "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.*"
    }
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)