更改Laravel 4中的默认环境

 书友62423539 发布于 2023-02-09 12:55

在Laravel 4中,默认配置环境是"生产".这意味着如果您在没有--env选项的情况下运行artisan命令,它将采用生产配置.这可以看出,当没有设置选项时\Illuminate\Foundation\Application::detectWebEnvironment()调用.detectConsoleEnvironment()--env

这种行为已成为我的开发环境的风险.很容易忘记--env选项,比如无意中在生产数据库上运行迁移.(是的,发生了这件事,但幸运的是,这是一个小小的改变.)我接近将生产环境配置重命名为"实际生产",但似乎应该有一个更优雅的解决方案.

TL; DR

如何更改Laravel 4中的默认环境,以便默认情况下artisan命令不会在生产中运行?

2 个回答
  • 在bootstrap/start.php中,您可以设置环境:

    $env = $app->detectEnvironment(function()
    {
    
        return 'development';
    
    });
    

    但你可以做很多事情,比如:

    $env = $app->detectEnvironment(array(
    
        'local' => array('your-machine-name'),
    
    ));
    

    $env = $app->detectEnvironment(function()
    {
        return $_SERVER['MY_LARAVEL_ENV'];
    });
    

    2023-02-09 12:56 回答
  • 感谢Antonio提示我重新考虑域名检测.

    $env = $app->detectEnvironment(array(
    (
        // Empty string is to set development as the default environment for 
        // artisan commands.
        'development' => array('dev.foo.com', ''),
        'test' => array('test.foo.com'),
        'production' => array('www.foo.com', 'foo.com'),
    ));
    

    添加''作为开发域有效地将开发设置为工匠命令的默认环境,可能是因为从命令行调用应用程序时域名为空.我测试过,似乎一切== false都会起作用.我还证实了这不会干扰生产或测试环境的检测.

    2023-02-09 12:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有