成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Laravel中如何實(shí)現(xiàn)plus-component-創(chuàng)新互聯(lián)

小編給大家分享一下Laravel中如何實(shí)現(xiàn)plus-component,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),臨武網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:臨武等地區(qū)。臨武做網(wǎng)站價(jià)格咨詢:18982081108

plus-component 是什么

就如同名字一樣,plus 代表的是 ThinkSNS+ 程序,用 - 分割 后面的 component 就是「包」或者我們理解成應(yīng)用。在這里的「應(yīng)用」指的是通過實(shí)現(xiàn) API 或者 web 的功能。所以產(chǎn)生了這個(gè)類型。

但是 plus-component 不只是應(yīng)用,也可以是簡(jiǎn)單的功能拓展,例如medz/plus-storage-quniu就是拓展的七牛云儲(chǔ)存。

composer 插件的建立

既然涉及到路由,最開始的想法,其實(shí)是 /routes 目錄下生成文件,包的路由文件復(fù)制到這里來。后來,發(fā)現(xiàn)了問題不足。
最后想到,plus-component 的實(shí)現(xiàn),不一定是基于路由的應(yīng)用,也有可能是簡(jiǎn)單的拓展。我們看下中間插件的接口類:

Laravel中如何實(shí)現(xiàn)plus-component

其中 router 成了非必需項(xiàng)。

轉(zhuǎn)而,擁有了三個(gè) hook 方法 install、update 和 uninstall 方法,這三個(gè)分別對(duì)應(yīng)的是安裝,升級(jí),卸載。
而設(shè)計(jì)中,plus-component 中間插件會(huì)在 Laravel 的 /config/component.php 中增加如下配置:
Laravel中如何實(shí)現(xiàn)plus-component
中間插件的 composer.json 配置

其實(shí)很簡(jiǎn)單,看到上面添加到 /config/component.php 的代碼了, installer 項(xiàng)哪里來的呢?看下 包的配置:
Laravel中如何實(shí)現(xiàn)plus-component
就是最后的 extra.installer-class 配置的,這里是完整的 class name,這樣,在 composer 插件執(zhí)行的時(shí)候讀取這個(gè)額外的配置,并寫入到 Laravel 的配置文件中。

install/update/uninstall

在 ThinkSNS+ 中有 php artisan component [install|update|unstall] vendor/name 這樣一個(gè)命令,主要是用作 包的安裝,升級(jí),卸載。
實(shí)際運(yùn)行如下:
Laravel中如何實(shí)現(xiàn)plus-component

通過這樣的方式安裝包,而這個(gè)命令會(huì)讀取 /config/component.php 的配置,從而得到 installer ,這樣,在運(yùn)行不同的參數(shù)的時(shí)候后,調(diào)用 install,uodate,uninstall 等 需求 hook 達(dá)到目的。

router

在最上面的接口類中你也看到了,有一個(gè) router 方法,這個(gè)方法返回類型有兩個(gè) void|string,所以, void 代表沒有路由,string 就表示包路由文件的絕對(duì)地址。

在 php artisan component 命令執(zhí)行的時(shí)候,對(duì)應(yīng)的添加 /config/component_routes.php 里面的配置。
在 /app/Providers/RouteServiceProvider.php 中如下:
Laravel中如何實(shí)現(xiàn)plus-component

可能你會(huì)誤會(huì),為什么只是 include 進(jìn)來呢?是的,這里的代碼其實(shí)是參照 Route::group 來的,而在包里面的文件,可以正常的使用 Route::* 進(jìn)行路由配置。

resource

既然可以基于路由,那就必然會(huì)存在靜態(tài)資源的問題,在接口類中也有這樣的規(guī)定:
Laravel中如何實(shí)現(xiàn)plus-component

這里返回在包中靜態(tài)資源存儲(chǔ)的目錄,執(zhí)行安裝或者升級(jí)命令的時(shí)候復(fù)制到 /public/vendor/name 目錄下來達(dá)到靜態(tài)資源發(fā)布的功能。

看完了這篇文章,相信你對(duì)“Laravel中如何實(shí)現(xiàn)plus-component”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

本文題目:Laravel中如何實(shí)現(xiàn)plus-component-創(chuàng)新互聯(lián)
URL鏈接:http://jinyejixie.com/article12/jjogc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)做網(wǎng)站、ChatGPT、網(wǎng)站導(dǎo)航云服務(wù)器、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
三门县| 开阳县| 枣庄市| 乐清市| 汕尾市| 郁南县| 太康县| 隆安县| 弥渡县| 名山县| 南部县| 林芝县| 合山市| 苏州市| 西城区| 泰和县| 乌审旗| 甘肃省| 瑞昌市| 翁牛特旗| 徐州市| 噶尔县| 太仓市| 太仆寺旗| 手游| 垦利县| 万山特区| 安庆市| 德安县| 江陵县| 彭州市| 南皮县| 大宁县| 舒兰市| 怀远县| 维西| 叙永县| 莱州市| 苏尼特左旗| 黎川县| 长岭县|