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条经验 获得超3个赞
好问题,因为我还没有考虑为我自己的网站做类似的事情,现在是时候研究这个了......
这不是最好的解决方案,但需要考虑。
您可以将以下内容添加(附加)到您的 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 关注
- 101 浏览
添加回答
举报