3 回答

TA貢獻1865條經驗 獲得超7個贊
更好的做法是為每個環境創建一個唯一的 .env 文件。然后將您的 conf 設置到那些 .env 文件中。例如,你可以有一個像這樣的 .env 文件:
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = development
#--------------------------------------------------------------------
# APP
#--------------------------------------------------------------------
app.baseURL = 'http://localfolder.loc'
另一個與app.baseURL = 'http://testserver.com/localfolder'.
去檢查關于它的 CI4 文檔:https ://codeigniter.com/user_guide/general/configuration.html#handling-different-environments

TA貢獻1872條經驗 獲得超4個贊
好問題,因為我還沒有考慮為我自己的網站做類似的事情,現在是時候研究這個了......
這不是最好的解決方案,但需要考慮。
您可以將以下內容添加(附加)到您的 App.php 以包含...
protected $localFolder = 'localfolder';
public function __construct() {
parent::__construct();
$this->setBaseUrl(); // Set the Base URL
}
protected function setBaseUrl() {
switch ($_ENV['CI_ENVIRONMENT']) {
case 'development':
$this->baseURL = "http://$this->localFolder.loc";
break;
default:
$this->baseURL = "http://testserver.com/$this->localFolder";
break;
}
}
} // End of APP Class
因此,更改 .env 文件中的 CI_ENVIRONMENT 值將切換 $baseURL。
更好的方法
您最好將 $localFolder 設置為 ENV 值,這樣您就可以從一個位置進行控制。
LOCAL_FOLDER = '本地文件夾'
在你的 .env 文件中
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
# CI_ENVIRONMENT = production
CI_ENVIRONMENT = development
LOCAL_FOLDER = 'localfolder'
然后 setBaseUrl 方法將變為
protected function setBaseUrl() {
switch ($_ENV['CI_ENVIRONMENT']) {
case 'development':
$this->baseURL = "http://{$_ENV['LOCAL_FOLDER']}.loc";
break;
default:
$this->baseURL = "http://testserver.com/{$_ENV['LOCAL_FOLDER']}";
break;
}
}
希望這能給你一些想法。

TA貢獻1943條經驗 獲得超7個贊
另一種方法是通過注冊商
這種方法的好處是您可以在一個地方覆蓋任何配置。您只需創建一個 Config/Registrar.php 文件,然后像這樣覆蓋配置:
namespace Config;
class Registrar
{
public static function App(): array {
return [
'production' => ['baseURL' => 'https://example.com'],
'development' => ['baseURL' => 'https://dev.example.com']
][$_ENV['CI_ENVIRONMENT']];
}
}
- 3 回答
- 0 關注
- 133 瀏覽
添加回答
舉報