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

資訊專欄INFORMATION COLUMN

基于 Laravel Route 的 社交系統ThinkSNS+ Component【研發日記系列三

pf_miles / 3298人閱讀

摘要:在社交系統中有這樣一個命令主要是用作包的安裝,升級,卸載。這在開發過程中很有用。內測申請方式提供個人企業聯系方式及認證信息實名企業營業執照照片或掃描件及申請說明,發送郵件至將有機會獲得首批內測資格,名額有限,申請從速。

在前面,我介紹了拓展類型,分別有 plus-compnent 和 plus-plugin 兩個,這里重點講以下如何實現 plus-component 的。

plus-component 是什么

就如同名字一樣,plus 代表的是 ThinlSNS+ 程序,用 - 分割 后面的 component 就是「包」或者我們理解成應用。在這里的「應用」指的是通過實現 API 或者 web 的功能。所以產生了這個類型。

但是 plus-component 不只是應用,也可以是簡單的功能拓展,例如medz/plus-storage-quniu就是拓展的七牛云儲存。

composer 插件的建立

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

其中 router 成了非必需項。

轉而,擁有了三個 hook 方法 install、update 和 uninstall 方法,這三個分別對應的是安裝,升級,卸載。
而設計中,plus-component 中間插件會在 Laravel 的 /config/component.php 中增加如下配置:

中間插件的 composer.json 配置

其實很簡單,看到上面添加到 /config/component.php 的代碼了, installer 項哪里來的呢?看下 包的配置:

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

install/update/uninstall

在社交系統ThinkSNS+ 中有 php artisan component [install|update|unstall] vendor/name 這樣一個命令,主要是用作 包的安裝,升級,卸載。
實際運行如下:

通過這樣的方式安裝包,而這個命令會讀取 /config/component.php 的配置,從而得到 installer ,這樣,在運行不同的參數的時候后,調用 install,uodate,uninstall 等 需求 hook 達到目的。

router

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

在 php artisan component 命令執行的時候,對應的添加 /config/component_routes.php 里面的配置。
在 /app/Providers/RouteServiceProvider.php 中如下:

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

resource

既然可以基于路由,那就必然會存在靜態資源的問題,在接口類中也有這樣的規定:

這里返回在包中靜態資源存儲的目錄,執行安裝或者升級命令的時候復制到 /public/vendor/name 目錄下來達到靜態資源發布的功能。

更高級的封裝

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

下期預告:下一篇文章,會簡單的講以下 ThinkSNS+ 自封裝的命令實現。

內測申請方式

  提供個人/企業聯系方式及認證信息(實名ID /企業營業執照照片或掃描件)及申請說明,發送郵件至lihecong@zhishisoft.com將有機會獲得首批內測資格,名額有限,申請從速。

開源代碼倉庫

GitHub:https://github.com/zhiyicx/th...(點擊星,每日關注開發動態。)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23084.html

相關文章

  • 如何在 Laravel 中 “規范” 開發驗證碼發送功能【社交系統ThinkSNS研發日記十一】

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

    Flands 評論0 收藏0
  • 不使用方包時,如何在社交系統ThinkSNS中建立優雅用戶權限管理【研發日記13】

    摘要:本文主要全面講解在不適用第三方包的情況下,如何在基于框架上,研發社交系統時,簡歷一套優雅而不失性價比的用戶權限管理體系功能,內含真實代碼。需求場景就是用戶組權限節點,這個需求有很多很好的第三方包實現。但是已經足以勝任用戶組權限判斷邏輯了。 本文主要全面講解在不適用第三方包的情況下,如何在基于Laravel框架上,研發社交系統ThinkSNS+時,簡歷一套優雅而不失性價比的用戶權限管理體...

    JackJiang 評論0 收藏0

發表評論

0條評論

pf_miles

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<