摘要:看到第二個就知道了,和的自動發現類似,我們是在中記錄服務提供者信息,而是在目錄中查找后寫入到。從這里讀取服務提供者列表,然后在函數中合并服務提供者,然后加載,從服務提供者中還可以繼續加載服務提供者。
看了Taylor Otwell發表的Package Auto-Discovery In Laravel 5.5第一反應是
為啥。。。
也怪我,在開發之前忘記看5.5的開發代碼動態,之前的文章中也提到過,在ThinkSNS+開發場景中,我們不可能讓用戶去 config/app.php 修改配置,所以為了解決加載包的問題,我們開發了Laravel服務提供者的增強版可以看plus/doc/pakcage
是的,增強版的服務提供者,增加功能如下:
l 可以友好的加載其他「服務提供者」(這在開發包的時候需要依賴其他laravel拓展包很有用)
l 服務提供者轉到composer.json配置(無需修改配置了)
l 針對包更友好的publish(Laravel的vendor:publish要求輸入服務提供者類,我們的只要求輸入包名稱)
l 處理器,簡化版的命令行,可以用一個函數寫一個簡單的處理方法。
看到第二個就知道了,和laravel 5.5的自動發現類似,我們是在 bootstrap/cache/providers.php 中記錄服務提供者信息,而Laravel 5.5是在vendor目錄中查找后寫入到 bootstrap/cache/package.php 。
是的,我們的實現思路差不多,但我們支持更多功能。從這里讀取服務提供者列表,然后在 IlluminateFoundationApplication::registerConfiguredProviders 函數中合并服務提供者,然后加載,從服務提供者中還可以繼續加載服務提供者。
說下我的心情,大概是這樣:,又喜又悲~
開心,高興,Laravel更易用了,另一個心情;
惆悵,因為我在社交系統ThinkSNS+中開發了這一特性后,公司包幾乎都是以這種方式實現的。
你會說,把這些包配置字段設置下不就好了嘛?可是,在這種方式沒定型之前,已經修改過一次,難道一個多月后又要修改一次?慘不忍睹呀!!!我怕我會被揍,想想就有點痛。
今天在群里說這個話題,某開發者:“哈哈,我終于開發了畫中畫功能”,然后谷歌:“Android 8 原生支持”。其實道理一樣的,并不是因為官方原生支持了不好,而是在糾結,用官方的?還是繼續維護自己的?自己的不一定有官方好,官方支持更穩定。
總結,我們覺得廢棄掉現在的安裝器(bootstrap/cache/providers.php 是由Composer安裝器插件寫入的),然后增加一份代碼,從vendor目錄匹配出來,寫入到 bootstrap/cache/package.php 中去,只為5.5做準備。來吧!!!
開源代碼倉庫
GitHub:https://github.com/zhiyicx/th...(點擊star,每日關注開發動態。)
ThinkSNS官網:http://www.thinksns.com
內測申請方式
提供個人/企業聯系方式及認證信息(實名ID/企業營業執照照片或掃描件)及申請說明,發送郵件至lihecong@zhishisoft.com即可獲得內測資格,申請從速。
歡迎各位關注者通過郵件,以圖+文的形式發送至官方郵箱lihecong@zhishisoft.com反饋發現的問題,備注機型及系統版本。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30602.html
摘要:在社交系統中有這樣一個命令主要是用作包的安裝,升級,卸載。這在開發過程中很有用。內測申請方式提供個人企業聯系方式及認證信息實名企業營業執照照片或掃描件及申請說明,發送郵件至將有機會獲得首批內測資格,名額有限,申請從速。 在前面,我介紹了拓展類型,分別有 plus-compnent 和 plus-plugin 兩個,這里重點講以下如何實現 plus-component 的。 plus-c...
摘要:今天我們來聊一下可能很多人都會頭疼的東西顯示長度。需求是這樣的,在字符的顯示上,兩個英文單詞才占一個中文或者其他語言的顯示長度。好在在無意間發現一個奇怪的東西這個函數計算非英文單詞外是除了符號例如中文就是按照漢字個數算的,也是同理。 今天我們來聊一下可能很多人都會頭疼的東西:顯示長度。 需求是這樣的,在字符的顯示上,兩個英文單詞才占一個中文或者其他語言的顯示長度。如下: showImg...
摘要:本文主要全面講解在不適用第三方包的情況下,如何在基于框架上,研發社交系統時,簡歷一套優雅而不失性價比的用戶權限管理體系功能,內含真實代碼。需求場景就是用戶組權限節點,這個需求有很多很好的第三方包實現。但是已經足以勝任用戶組權限判斷邏輯了。 本文主要全面講解在不適用第三方包的情況下,如何在基于Laravel框架上,研發社交系統ThinkSNS+時,簡歷一套優雅而不失性價比的用戶權限管理體...
閱讀 2882·2021-09-28 09:36
閱讀 3608·2021-09-27 13:59
閱讀 2484·2021-08-31 09:44
閱讀 2278·2019-08-30 15:54
閱讀 2352·2019-08-30 15:44
閱讀 1180·2019-08-30 13:45
閱讀 1223·2019-08-29 18:38
閱讀 1207·2019-08-29 18:37