php - Laravel 4.1+ 中的环境检测

标签 php laravel

Laravel 4.1 removed the feature使用域来检测应用程序运行的环境。阅读他们现在建议使用主机名的文档。但是,对我来说,如果您在团队中工作,这似乎很麻烦。每个人都应该更改 bootstrap/start.php 文件并添加自己的主机名以便能够在开发环境中运行该应用程序吗?另外,如果您想在同一台机器上拥有两个不同的环境怎么办?

如果您在 Laravel 4.1+ 团队中工作,如何最好地检测环境?

最佳答案

这是我在 bootstrap/start.php 文件中的设置:

$env = $app->detectEnvironment(function() use($app) {
    return getenv('ENV') ?: ($app->runningInConsole() ? 'local' : 'production');
});

在我的例子中,这个方法不是默认数组,而是返回三元闭包。这样我就可以更灵活地选择所需的环境。您也可以使用 switch 语句。 Laravel 将读取返回值并自行配置。 使用 getenv native 函数,我只是在监听给定的环境。如果我的应用程序在服务器上,那么它将“选择”服务器配置。如果在本地,那么它将选择本地(或开发) 并且不要忘记在 app/config 中为您的环境创建自定义目录 还有测试环境,它是自动选择的,每次你对应用程序进行单元测试时。

Laravel 让处理环境变得非常有趣。

更新:

对于环境,我们主要关注数据库凭据。

对于生产,我使用 Fortrabbit,因此在服务器上配置新应用程序时,fortrabbit 会为我生成这些值。我只需要声明它们。例如DB 只是数据库或 db ... 或 DB_HOST 或 HOST ... 在本地,这些值是您用于本地主机/mysql 设置的值。

关于php - Laravel 4.1+ 中的环境检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730630/

相关文章:

php - 将查询转换为 codeigniter 格式

database - 处理涉及枢轴的范围的正确方法

php - Laravel 嵌套数组的类型转换

php - PHP 应用程序正确格式的数字和逗号正则表达式

PHP session 在屏幕之间不持久

php - 查询不插入数据

javascript - 如何仅使用按钮或 div 向我的 API 发送 put 请求?

php - 仅当变量存在时才在 Eloquent 查询中包含子句

Laravel 观察者还是 MySQL 触发器?

laravel - 我如何在 Laravel 5.5 的 FormRequest 类中返回自定义响应?