欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么做到Laravel配置可以網(wǎng)站后臺配置-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)怎么做到Laravel配置可以網(wǎng)站后臺配置,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在萬全等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,萬全網(wǎng)站建設(shè)費用合理。

需求場景

首先,ThinkSNS+ 作為一個用戶可以使用的「社交系統(tǒng)」和開源網(wǎng)站程序一樣擁有后臺,有一些配置,Laravel 是要求寫在 /config/*.php 的配置文件中的,例如 app.name、app.debug 等信息的配置,以及 Jobs 的驅(qū)動配置,廣播系統(tǒng)的配置等,我們都搬到了網(wǎng)站后臺,用戶安裝后可以不用修改配置文件的情況下鏡像配置。

如何覆蓋配置

我們首先打開 Illuminate\Foundation\Application::bootstrapWith 方法,代碼如下:
怎么做到Laravel配置可以網(wǎng)站后臺配置

重點代碼在 $this['events']->fire('bootstrapping: '.$bootstrapper, [$this]); 和 $this['events']->fire('bootstrapped: '.$bootstrapper, [$this]); 上,很明顯是加載并運行 bootstrapper 的前置和后置事件。

所以,我們看還有一個方法叫做 beforeBootstrapping 和 afterBootstrapping 然后怎么做呢?我們看
怎么做到Laravel配置可以網(wǎng)站后臺配置

沒錯,這里是固定了順序的,我錯誤的加載順序,會造成laravel的失敗,所以,我們選擇在之前繼承 Illuminate\Foundation\Application 的應(yīng)用基礎(chǔ)上增加一個事件,代碼如下:
怎么做到Laravel配置可以網(wǎng)站后臺配置

哪里添加的事件

因為 ThinkSNS+ 是繼承了 Illuminate\Foundation\Application 實現(xiàn)了新的 Application 類,所以我們直接在構(gòu)造方法里面增加了代碼。
這樣,當 Laravel 啟動,但是還沒有加載 bootstrapper 的時候,已經(jīng)把 加載配置的后置事件注入進去了。當加載配置執(zhí)行完成后就會執(zhí)行我注入的后置事件。

后置事件的實現(xiàn)

我們在創(chuàng)建了 \Zhiyi\Plus\Bootstrap\LoadConfiguration 這樣一個類,注冊為后置事件,路徑為: /app/Bootstrap/LoadConfiguration.php ,然后實現(xiàn)代碼如下:
怎么做到Laravel配置可以網(wǎng)站后臺配置

很簡單,因為 app('config') 是一個 Illuminate\Contracts\Config\Repository 接口的實例,所以直接調(diào)用 set 方法進行配置覆蓋。
而 Zhiyi\Plus\Support\Configuration 類是封裝的自定義配置加載類,加載的配置文件存放在一個 YAML 文件中,這個類實現(xiàn)了 自定義配置文件的加載和保存。這樣,我們從后臺調(diào)用 API 然后 constroller 調(diào)用這個類的 save 方法進行持久化。

Zhiyi\Plus\Support\Configuration::getConfigurationBase

為什么要特殊說一下這個方法?因為這個方法的特殊性,也是 depth merge 實現(xiàn)的重要函數(shù),在 Repository 中支持 app.name = value 這樣的形式進行深曾鍵值賦值,利用這一個特性,這個函數(shù)將 多維數(shù)組轉(zhuǎn)換為一維。
效果:
怎么做到Laravel配置可以網(wǎng)站后臺配置

然后調(diào)用 app('config')->set($arr) 就對 Laravel 的 config 進行了 depth merge。
最后,持久化保存的 YAML 內(nèi)容如下:
怎么做到Laravel配置可以網(wǎng)站后臺配置

所以,基于 depth merge 在 .plus.yml 配置中,只需要保存部分配置,即可不想配置結(jié)構(gòu)的完整性的情況下對 Laravel 鏡像配置合并。

關(guān)于“怎么做到Laravel配置可以網(wǎng)站后臺配置”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

新聞名稱:怎么做到Laravel配置可以網(wǎng)站后臺配置-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article24/jcsce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、定制開發(fā)、靜態(tài)網(wǎng)站ChatGPT、網(wǎng)頁設(shè)計公司、移動網(wǎng)站建設(shè)

廣告

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

小程序開發(fā)
色婷婷综合五月在线观看| 亚洲成人不卡一区二区三区| 国产精品av在线网站| 91成人精品永久在线观看| 国产精品盗摄一区二区三区| 成人性生活三级黄色片| 91日韩中文字幕在线观看| 亚洲av不卡一区二区在线观看| 人妻中文字幕在线av| 日韩欧美一区二区狠狠插| 亚洲欧美日韩精品一区二| 日韩免费av在线网站| 国产在线91精品入口| av黄色成人在线观看| 国产黄色三级电影在线| 日本一区二区高清在线观看| 国产一区二区黄色网页| av在线男人社区日韩| 亚洲综合一区二区三区四区在线| 后入动漫视频在线观看| 中文字幕日韩乱码一级在线| 精品国产乱码一区二区三区| 欧美成人精品高清在线| 97人妻人人澡人人爽| 亚洲av日韩av在线不卡一区| 久久亚洲精品中文字幕馆| 日本的黄色录像一级带| 欧美一级午夜欧美午夜视频| 亚洲日本成人av在线观看| 欧美色高清视频在线播放| 亚洲天堂av现在观看| 日韩女同一区二区三区在线观看| 日韩电影在线播放中文字幕| 亚洲精品污一区二区三区| 91精品国产老熟女在线| 欧美亚洲午夜精品久久久| 天天操夜夜操夜夜操精品| 91久久亚洲综合精品日本| 少妇肥臀一区二区三区| 国产日韩久久免费电影| 色综合色综合色综合色综合|