您好,登錄后才能下訂單哦!
小編給大家分享一下Laravel不同生產環境服務器的判斷示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
項目的前期為了開發速度會使用單一應用,就是一個 Laravel 框架實現 API 和后臺接口。
用戶體量上來后,一臺服務器不夠了,項目就采用了 API 和 后臺接口分開放到不同的服務器上面。
發現路由數量變多后影響到了性能,這個時候需要區別不同服務器去加載不同的路由。
如何去別不同的服務器區別環境,但是又要區別是生產環境。
代碼實現
可以使用 app()->environment();
方法實現,生產環境和測試環境的區別。
查看代碼后發現可以使用更多的方法。
/** * 獲取或檢查當前應用程序環境。 * * @return string|bool */ public function environment() { // 返回傳遞給函數的參數數量 if (func_num_args() > 0) { // 如果第一個參數是數組就去第一個,不是的話取全部的。 $patterns = is_array(func_get_arg(0)) ? func_get_arg(0) : func_get_args(); return Str::is($patterns, $this['env']); } return $this['env']; }
Str::is 函數判斷給定的字符串是否匹配給定的模式。星號 * 可以用來表示通配符:
# 判斷在 API 環境 app()->environment("production.api"); # 判斷在 ADMIN 環境 app()->environment("production.admin"); # 判斷在所有環境 app()->environment("production.*");
修改 RouteServiceProvider
文件
/** * Define the routes for the application. */ public function map() { // 公共路由 if (app()->environment('production.api')) { # production api 路由 $this->mapApiRoutes(); } elseif (app()->environment('production.admin')) { # production admin 路由 $this->mapAdminRoutes(); } else { # local testing stanging 環境下加載所有路由 $this->mapApiRoutes(); $this->mapAdminRoutes(); } }
看完了這篇文章,相信你對“Laravel不同生產環境服務器的判斷示例”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。