国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于 Laravel Route 的 社交系統(tǒng)ThinkSNS+ Component【研發(fā)日記系列三

pf_miles / 3306人閱讀

摘要:在社交系統(tǒng)中有這樣一個(gè)命令主要是用作包的安裝,升級(jí),卸載。這在開發(fā)過程中很有用。內(nèi)測(cè)申請(qǐng)方式提供個(gè)人企業(yè)聯(lián)系方式及認(rèn)證信息實(shí)名企業(yè)營(yíng)業(yè)執(zhí)照照片或掃描件及申請(qǐng)說明,發(fā)送郵件至將有機(jī)會(huì)獲得首批內(nèi)測(cè)資格,名額有限,申請(qǐng)從速。

在前面,我介紹了拓展類型,分別有 plus-compnent 和 plus-plugin 兩個(gè),這里重點(diǎn)講以下如何實(shí)現(xiàn) plus-component 的。

plus-component 是什么

就如同名字一樣,plus 代表的是 ThinlSNS+ 程序,用 - 分割 后面的 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)單的拓展。我們看下中間插件的接口類:

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

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

中間插件的 composer.json 配置

其實(shí)很簡(jiǎn)單,看到上面添加到 /config/component.php 的代碼了, installer 項(xiàng)哪里來的呢?看下 包的配置:

就是最后的 extra.installer-class 配置的,這里是完整的 class name,這樣,在 composer 插件執(zhí)行的時(shí)候讀取這個(gè)額外的配置,并寫入到 Laravel 的配置文件中。

install/update/uninstall

在社交系統(tǒng)ThinkSNS+ 中有 php artisan component [install|update|unstall] vendor/name 這樣一個(gè)命令,主要是用作 包的安裝,升級(jí),卸載。
實(shí)際運(yùn)行如下:

通過這樣的方式安裝包,而這個(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 中如下:

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

resource

既然可以基于路由,那就必然會(huì)存在靜態(tài)資源的問題,在接口類中也有這樣的規(guī)定:

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

更高級(jí)的封裝

這里其實(shí)是只模式封裝,在 ThinkSNS+ 的 php artisan component 其實(shí)還有一個(gè) --link 參數(shù),做什么用的?其實(shí)不難理解,就是吧靜態(tài)資源由原來的復(fù)制變成創(chuàng)建軟鏈。這在開發(fā)過程中很有用。

下期預(yù)告:下一篇文章,會(huì)簡(jiǎn)單的講以下 ThinkSNS+ 自封裝的命令實(shí)現(xiàn)。

內(nèi)測(cè)申請(qǐng)方式

  提供個(gè)人/企業(yè)聯(lián)系方式及認(rèn)證信息(實(shí)名ID /企業(yè)營(yíng)業(yè)執(zhí)照照片或掃描件)及申請(qǐng)說明,發(fā)送郵件至lihecong@zhishisoft.com將有機(jī)會(huì)獲得首批內(nèi)測(cè)資格,名額有限,申請(qǐng)從速。

開源代碼倉庫

GitHub:https://github.com/zhiyicx/th...(點(diǎn)擊星,每日關(guān)注開發(fā)動(dòng)態(tài)。)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/23084.html

相關(guān)文章

  • 如何在 Laravel 中 “規(guī)范” 開發(fā)驗(yàn)證碼發(fā)送功能【社交系統(tǒng)ThinkSNS研發(fā)日記十一】

    摘要:需求場(chǎng)景發(fā)送驗(yàn)證碼或者消息通知,可發(fā)送到手機(jī)或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場(chǎng)景為驗(yàn)證碼。所以我們?cè)隍?yàn)證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個(gè)小通知:7月15日ThinkSNS+開源版發(fā)布,同時(shí)非開源的APP也走出內(nèi)測(cè)階段,體驗(yàn)二維碼也全面發(fā)布體驗(yàn)。 什么是ThinkSNS ? ThinkSNS(簡(jiǎn)稱TS),一款全平臺(tái)綜合性社交系統(tǒng),為國(guó)內(nèi)外大中小...

    Flands 評(píng)論0 收藏0
  • 不使用方包時(shí),如何在社交系統(tǒng)ThinkSNS中建立優(yōu)雅用戶權(quán)限管理【研發(fā)日記13】

    摘要:本文主要全面講解在不適用第三方包的情況下,如何在基于框架上,研發(fā)社交系統(tǒng)時(shí),簡(jiǎn)歷一套優(yōu)雅而不失性價(jià)比的用戶權(quán)限管理體系功能,內(nèi)含真實(shí)代碼。需求場(chǎng)景就是用戶組權(quán)限節(jié)點(diǎn),這個(gè)需求有很多很好的第三方包實(shí)現(xiàn)。但是已經(jīng)足以勝任用戶組權(quán)限判斷邏輯了。 本文主要全面講解在不適用第三方包的情況下,如何在基于Laravel框架上,研發(fā)社交系統(tǒng)ThinkSNS+時(shí),簡(jiǎn)歷一套優(yōu)雅而不失性價(jià)比的用戶權(quán)限管理體...

    JackJiang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

pf_miles

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<