圖片1.png (13.53 KB, 下載次數(shù): 61)
下載附件
2017-06-14 16:13 上傳
為啥。。。 也怪我,在開發(fā)之前忘記看5.5的開發(fā)代碼動態(tài),之前的文章中也提到過,在ThinkSNS+開發(fā)場景中,我們不可能讓用戶去 config/app.php 修改配置,所以為了解決加載包的問題,我們開發(fā)了Laravel服務(wù)提供者的增強版可以看plus/doc/pakcage 是的,增強版的服務(wù)提供者,增加功能如下: l 可以友好的加載其他「服務(wù)提供者」(這在開發(fā)包的時候需要依賴其他laravel拓展包很有用) l 服務(wù)提供者轉(zhuǎn)到composer.json配置(無需修改配置了) l 針對包更友好的publish(Laravel的vendor:publish要求輸入服務(wù)提供者類,我們的只要求輸入包名稱) l 處理器,簡化版的命令行,可以用一個函數(shù)寫一個簡單的處理方法。 看到第二個就知道了,和laravel 5.5的自動發(fā)現(xiàn)類似,我們是在 bootstrap/cache/providers.php 中記錄服務(wù)提供者信息,而Laravel 5.5是在vendor目錄中查找后寫入到 bootstrap/cache/package.php 。 是的,我們的實現(xiàn)思路差不多,但我們支持更多功能。從這里讀取服務(wù)提供者列表,然后在 Illuminate\Foundation\Application::registerConfiguredProviders 函數(shù)中合并服務(wù)提供者,然后加載,從服務(wù)提供者中還可以繼續(xù)加載服務(wù)提供者。 說下我的心情,大概是這樣:
圖片2.png (5.77 KB, 下載次數(shù): 48)
下載附件
2017-06-14 16:13 上傳
,又喜又悲~ 開心,高興,Laravel更易用了,另一個心情; 惆悵,因為我在社交系統(tǒng)ThinkSNS+中開發(fā)了這一特性后,公司包幾乎都是以這種方式實現(xiàn)的。 你會說,把這些包配置字段設(shè)置下不就好了嘛?可是,在這種方式?jīng)]定型之前,已經(jīng)修改過一次,難道一個多月后又要修改一次?慘不忍睹呀。!我怕我會被揍,想想就有點痛。
圖片3.png (15.38 KB, 下載次數(shù): 61)
下載附件
2017-06-14 16:13 上傳
今天在群里說這個話題,某開發(fā)者:“哈哈,我終于開發(fā)了畫中畫功能”,然后谷歌:“Android 8 原生支持”。其實道理一樣的,并不是因為官方原生支持了不好,而是在糾結(jié),用官方的?還是繼續(xù)維護自己的?自己的不一定有官方好,官方支持更穩(wěn)定。 總結(jié),我們覺得廢棄掉現(xiàn)在的安裝器(bootstrap/cache/providers.php 是由Composer安裝器插件寫入的),然后增加一份代碼,從vendor目錄匹配出來,寫入到 bootstrap/cache/package.php 中去,只為5.5做準備。來吧。! 開源代碼倉庫 內(nèi)測申請方式 提供個人/企業(yè)聯(lián)系方式及認證信息(實名ID/企業(yè)營業(yè)執(zhí)照照片或掃描件)及申請說明,發(fā)送郵件至lihecong@zhishisoft.com即可獲得內(nèi)測資格,申請從速。
|