Extension 作為 Notadd Framework 的一個特性存在,允許通過 Extension 的方式對 Notadd Framework 進行功能或模板的擴展。 Extension 的機制類似于 Laravel 中 Service Provider 的機制,提供了一種實現(xiàn)組件化的機制,并可以實現(xiàn)傳統(tǒng)插件機制中的安裝、卸載以及插件啟動過程。
一個完整的 Notadd Extension ,必然是遵循 Composer 相關(guān)規(guī)范的 Package。
插件位于目錄 extensions 下,插件目錄結(jié)構(gòu)如下
vendor | 廠商目錄 |
---|---|
-extension | 插件目錄 |
--configuations | 可加載配置文件目錄 |
--resources | 資源目錄 |
---translations | 翻譯文件目錄 |
---views | 視圖目錄 |
--src | 源碼目錄 |
---Extension | 擴展服務(wù)提供者定義文件 |
--composer.json | Composer 配置文件 |
Extension 的機制類似于 Laravel 中 Service Provider 的機制,提供了一種實現(xiàn)組件化的機制,并可以實現(xiàn)傳統(tǒng)插件機制中的安裝、卸載以及插件啟動過程。
一個完整的 Notadd Extension ,必然是遵循 Composer 相關(guān)規(guī)范的 Package。
插件位于目錄 extensions 下,插件目錄結(jié)構(gòu)如下
vendor | 廠商目錄 |
---|---|
-extension | 插件目錄 |
--configuations | 可加載配置文件目錄 |
--resources | 資源目錄 |
---translations | 翻譯文件目錄 |
---views | 視圖目錄 |
--src | 源碼目錄 |
---bootstrap.php | 插件啟動腳本 |
--composer.json | Composer 配置文件 |
通過對 Composer 的自定義,可以實現(xiàn) Composer 自動加載 Extension 定義的依賴項。
配置 type 屬性為 notadd-extension
。
添加 notadd/installers
的 Package,才能實現(xiàn) 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.*"
}
}
更多建議: