起步--配置

介绍

Laravel框架中所有的配置文件
存储在config 目录中。每一个选项都记录在其中,因此很容易通过查看文件来熟悉你要使用的选项。

环境配置

通常来说,拥有基于应用运行环境的不同的配置文件是有帮助的。例如,你可能希望使用一个不同的本地缓冲驱动而不是在你的产品服务器上的那个驱动。

为了使这一目的容易实现,Laravel使用Vance Lucas的 DotEnv PHP库。在一个全新的Laravel安装环境中,你的应用程序的根目录将包含一个.env.example 文件。如果你通过Composer安装Laravel,这个文件将自动重命名为.env 。否则的话,你应该自己重命名这个文件。

Tips:
你也可以创建一个.env.testing 文件。当运行PHP单元测试或者执行带有--env=testing 选项Artisan命令的时候,这个文件将覆盖.env 文件中的值。

检索环境配置
当你的应用程序收到一个请求时,这个文件中列出的所有变量将被加载到PHP超级全局变量 $_ENV 中。然而,你可能会使用 env 助手来从你的配置文件中检索来自这些变量的值。实际上,如果你检查一下Laravel配置文件,你会注意到有几个选项已经在使用这个助手了:

'debug' => env('APP_DEBUG',false),

传入函数 env 的第二个值是“缺省值”。如果对于一个键没有对应的变量值,将会使用这个缺省值。

你的.env 文件不应该提交到你的源代码版本中,因为每个使用你的应用程序的开发人员或服务器可能会包含一个完全不同的环境配置。

如果你正在一个团队中开发,你可能希望在你的应用中包含一个.env.example 文件,在样例配置文件中设置占位符,这样的话,团队中别的开发人员可以清楚地看出你的应用都需要哪些环境变量。

判定当前环境
当前应用环境通过.env 文件中的 APP_ENV 变量来判定。你可以在App 中通过方法 environment 获取这个值:

$environment = App::environment();

你也可以给environment 方法传递参数来检查是否当前环境匹配给定的值。如果匹配则返回 true

if ( App::environment('local') ){
    //当前环境是本地的
}

if( App::environment('local', 'staging') ){
    //当前环境是本地或者staging
}

获取配置参数的值

你在的应用中任何地方可能都可以通过使用全局助手函数config 轻松获取你的配置参数的值。这个值可以通过使用“.”语法来获得,其中包括文件名和你希望获取的选项。也可以指定一个默认的值并且如果配置选项不存在将会返回这个默认值:

$value = config( 'app.timezone' );

在运行时设置配置参数的值,传递给config 助手一个数组就可以了:

config( ['app.timezone' => 'America/Chicago'] );

配置缓冲

为了提升你的应用的响应速度性能,你应该使用Artisan命令config:cache 来将你的所有配置文件缓冲到一个单独的文件中。这将会为你的应用组合所有的配置选项到一个单独的能够被框架快速加载的文件中。

通常来说,在你部署产品的常规中应该运行命令 php artisan config:cache 。这个命令在本地开发环境中不应该运行,因为在你的应用开发中,配置选项需要频繁改动。

Tips
如果你在部署过程中运行了命令 config:cache ,你应该确保仅仅调用了来自配置文件中的函数env

维护模式

当你的应用处在维护模式时,对所有的进入你的应用的请求将显示一个游客视图。这将使你的应用正在更新或者正在维护时“不可用”这件事变得简单。在你的应用中的默认中间件栈中包含了维护模式的检测。如果应用处于维护模式,将会抛出一个带有状态码503的异常MaintenanceModeException

为了使维护模式生效,简单执行Artisan命令 down 即可:

php artisan down

你也可以给命令 down 提供选项 messageretry 。这个 值message 可以用来显示或者记录一条客户信息,值retry 则被设置为 Retry-After HTTP头部的值:

php artisan down --message="Upgrading Database" --retry=60

关闭维护模式,可以使用命令 up

php artisan up

维护模式响应模板

对于维护模式默认的相应模板位于 resource/views/errors/503.blade.php。你可以随意修改这个视图以满足你的应用的需要。

维护模式和队列

当你的应用处在维护模式时,将不会处理队列任务。一旦你的应用移出维护模式,这些任务将继续正常被处理。

维护模式的替换
因为维护模式需要你的应用花费若干时间宕机,可以考虑使用替换品Envoyer来完成用Laravel零宕机部署。

更新中…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值