插件

2018-06-26 18:54 更新

說明

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

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

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

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

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

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

  • Extension
  • Resources
  • Composer

其他說明

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

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

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

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

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

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

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

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

其他說明

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

Composer

通過對 Composer 的自定義,可以實現(xiàn) Composer 自動加載 Extension 定義的依賴項。

Type

配置 type 屬性為 notadd-extension。

Require

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

完整示例

  1. {
  2. "name": "notadd/extension-demo",
  3. "description": "Notadd's Demo Extension.",
  4. "type": "notadd-extension",
  5. "keywords": ["notadd", "demo", "extension"],
  6. "homepage": "https://notadd.com",
  7. "license": "Apache-2.0",
  8. "authors": [
  9. {
  10. "name": "twilroad",
  11. "email": "heshudong@ibenchu.com"
  12. }
  13. ],
  14. "autoload": {
  15. "psr-4": {
  16. "Notadd\\Demo\\": "src/"
  17. }
  18. },
  19. "require": {
  20. "php": ">=7.0",
  21. "notadd/installers": "0.5.*"
  22. }
  23. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號