首页 > 后端开发 > php教程 > 用其他环境文件配置Laravel

用其他环境文件配置Laravel

Robert Michael Kim
发布: 2025-03-05 16:29:11
原创
581 人浏览过

Laravel允许您指定替代环境文件,绕过标准

文件。这对于测试特别有用,其中专用.env文件可以隔离测试配置。虽然并非总是必要的,但此功能通过利用.env.testing>环境变量来提供灵活性。APP_ENV>

cli用法

最简单的应用程序是将不同的环境文件与工匠命令或phpunit一起使用。 例如,使用

>文件,例如:.env.demo>

# Create .env.demo
cp .env .env.demo
echo "\nEXAMPLE_SETTING=demo" >> .env.demo

# Use the `demo` env
php artisan tinker --env=demo

# Or set APP_ENV
APP_ENV=demo php artisan tinker
登录后复制
laravel将优先考虑

.env.demo.env

>使用Configuring Laravel With Additional Environment Files而不是

.env.demo.env
>

>

phpunit和.env.testing

>对于Phpunit测试,默认值是使用.env。 但是,这可能导致与本地开发设置(尤其是有关数据库)的冲突。 phpunit.xml提供数据库配置,使用.env.testing提供了一种更清洁的方法。

>

设置phpunit.xmlAPP_ENV进行“测试”,促使Laravel在功能测试期间加载.env.testing

>
<env name="APP_ENV" value="testing"></env>
登录后复制

创建.env.testing并添加特定于测试的设置:

>
cp .env .env.testing
echo "\nEXAMPLE_SETTING=testing" >> .env.testing
登录后复制

验证.env.testing已加载,将其添加到tests/Feature>中的测试中:

/**
 * A basic test example.
 */
public function test_the_application_returns_a_successful_response(): void
{
    logger('Which environment file is Laravel using?', [
        'file' => $this->app->environmentFile()
    ]);

    $response = $this->get('/');

    $response->assertStatus(200);
}
登录后复制

运行phpunit应该登录:

<code>[2024-05-24 00:22:42] testing.DEBUG: Which environment file is Laravel using? {"file":".env.testing"}</code>
登录后复制

是否要版本控制.env.testing(或使用示例.env.testing.example)是团队的决定。 对于CI,建议使用测试数据库等设置系统级环境变量。 有关更详细的环境配置,请参阅官方的Laravel文档。 要更深入地了解框架的实现,请检查Laravel源代码中的setEnvironmentFilePathcheckForSpecificEnvironmentFile方法。

>

以上是用其他环境文件配置Laravel的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板