Laravel 5.3 学习笔记之 配置

1、简介

Laravel 的所有配置文件都存放在 config 目录下,每个配置项都有注释,以保证浏览任意配置文件的配置项都能直观了解该配置项的作用及用法。

2、访问配置值

你可以使用全局辅助函数 config 在应用的任意位置访问配置值,该配置值可以文件名+“.”+配置项的方式进行访问,当配置项没有被配置的时候返回默认值:

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

如果要在运行时设置配置值,传递数组参数到 config 方法即可:

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

3、环境配置

基于应用运行的环境不同设置不同的配置值能够给我们开发带来极大的方便,比如,我们通常在本地和线上环境配置不同的缓存驱动,这一机制在 Laravel 中很容易实现。

Laravel 使用 Vance Lucas 开发的 PHP 库 DotEnv 来实现这一机制,在新安装的 Laravel 中,根目录下有一个.env.example 文件,如果 Laravel 是通过 Composer 安装的,那么该文件已经被重命名为 .env,否则的话你要自己手动重命名该文件。

获取环境变量配置值

在应用每次接受请求时,.env 中列出的所有配置及其值都会被载入到 PHP 超全局变量 $_ENV 中,然后你就可以在应用中通过辅助函数 env 来获取这些配置值。实际上,如果你去查看 Laravel 的配置文件,就会发现很多地方已经在使用这个辅助函数了:

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

传递到 env 函数的第二个参数是默认值,如果环境变量没有被配置将会是个该默认值。

不要把 .env 文件提交到源码控制(svn 或 git 等)中,因为每个使用你的应用的开发者/服务器可能要求不同的环境配置。

如果你是在一个团队中进行开发,你需要将 .env.example 文件随你的应用一起提交到源码控制中:将一些配置值以占位符的方式放置在 .env.example 文件中,这样其他开发者就会很清楚运行你的应用需要配置哪些环境变量。

判断当前应用环境

当前应用环境由 .env 文件中的 APP_ENV 变量决定,你可以通过 App 门面 的 environment 方法来访问其值:

$environment = App::environment();

你也可以向 environment 方法中传递参数来判断当前环境是否匹配给定值,如果需要的话你甚至可以传递多个值。如果当前环境与给定值匹配,该方法返回 true:

if (App::environment('local')) {
  // The environment is local
}

if (App::environment('local', 'staging')) {
  // The environment is either local OR staging...
}

应用实例也可以通过辅助函数 app 来访问:

$environment = app()->environment();

4、配置缓存

为了给应用加速,你可以使用 Artisan 命令 config:cache 将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。

应用一旦上线,就要运行一次 php artisan config:cache,但是在本地开发时,没必要经常运行该命令,因为配置值经常需要改变。

5、维护模式

当你的应用处于维护模式时,所有对应用的请求都会返回同一个自定义视图。这一机制在对应用进行升级或者维护时,使得“关闭”站点变得轻而易举。对维护模式的判断代码位于应用默认的中间件栈中,如果应用处于维护模式,则状态码为 503 的  MaintenanceModeException 将会被抛出。

要开启维护模式,只需执行 Artisan 命令 down 即可:

php artisan down

要关闭维护模式,对应的 Artisan 命令是 up:

php artisan up

维护模式响应模板

默认的维护模式响应视图模板是 resources/views/errors/503.blade.php

维护模式 & 队列

当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任务才会被继续正常处理。

维护模式的替代方案

由于维护模式命令的执行需要几秒时间,你可以考虑使用 Envoyer 实现 0 秒下线作为替代方案。

(0)

相关推荐

  • 浅析Laravel5中队列的配置及使用

    前言 队列常常用于两种场景,一种是高并发的情况,一种是耗时的操作,可以将任务放到队列中去,消费者从队列取任务执行,当然还有失败的情况如何处理,以及延迟,重试,更复杂的情况还有优先级的实现. 在Laravel 5中使用队列非常简单,并且失败处理,延迟,重试的方法都已经实现,下面简单尝试了一下Laravel的队列服务. Laravel默认支持以下几种队列服务:sync, database, beanstalkd, sqs, redis,本例使用redis作为队列服务,需先配置好Redis服务. 1.

  • Laravel框架路由配置总结、设置技巧大全

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码 代码如下: Route::get('/', function() { return 'Hello World'; }); 基本 POST 路由 复制代码 代码如下: Route::post('foo/bar', function() { return 'Hello World'; }); 注册一个路由以响应所有 HT

  • 跟我学Laravel之配置Laravel

    当你需要在运行时访问配置项时,可以使用Config类: 获取一个配置项的值** 复制代码 代码如下: Config::get('app.timezone'); 如果配置项不存在,你还可以指定返回的默认值: 复制代码 代码如下: $timezone = Config::get('app.timezone', 'UTC'); 为配置项赋值 注意"点"式语法可以用来访问不同文件里的配置项的值.你还可以在运行时为配置项赋值.: 复制代码 代码如下: Config::set('database.

  • PHP IDE PHPStorm配置支持友好Laravel代码提示方法

    PHPStorm神器可以支持更友好的laravel框架代码提示(点击查看),只需要执行如下才做: 第一步:在项目的composer.json中添加如下一行 复制代码 代码如下: "require": { "laravel/framework": "5.0.*", "barryvdh/laravel-ide-helper":"dev-master" } 第二步:执行composer update 第三步:添加

  • Nginx中运行PHP框架Laravel的配置文件分享

    配置文件改成这样 server { listen 80; server_name sub.domain.com; set $root_path '/srv/www/default'; root $root_path; index index.php index.html index.htm; try_files $uri $uri/ @rewrite; location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; } location ~ \.

  • PHP开发框架laravel安装与配置教程

    Laravel是一套简洁.优雅的PHP Web开发框架,本文将详细介绍Laravel如何进行配置 配置说明 框架下载好了,但是想要很好的使用,可能我们还有一些东西需要知道,这就是配置.和项目有关的配置是在app/config文件夹里,但是除了这里还有一些配置可能是我们需要的.作为一个基础教程,我就不一一介绍了,只是选择一些大家配置比较多的地方讲解一下. app/config中的配置说明 在app/config文件夹中经常配置的一般有两个文件:app.php和database.php两个文件,他们

  • Laravel 5框架学习之环境与配置

    .env 文件是配置文件,包括数据库配置信息,查看 config->database.php ,connections 里面包含了所有数据库的配置,可以在 default 中选择要使用的数据库.在数据库配置中,有关 env('DB_HOST', 'localhost') 就是读取 .env 配置文件的信息.第二个参数是缺省参数. 我们使用 mysql 数据库,修改 .env: DB_HOST=localhost DB_DATABASE=laravel DB_USERNAME=root DB_PA

  • laravel安装和配置教程

    系统环境需求 apache,nginx或者其他web服务器: laravel使用了PHP的一些强而有力的特性,所以需要在PHP5.3或者更高的版本上才能够执行: Laravel使用FileInfo library(http://php.net/manual/en/book.fileinfo.php)来检测文件的mime类型,这个库在PHP5.3中是默认含有的,但是在Windows中用户需要自己在php.ini中开启这个模块,如果不明白可以看看这里:http://php.net/manual/en

  • Laravel 5.3 学习笔记之 配置

    1.简介 Laravel 的所有配置文件都存放在 config 目录下,每个配置项都有注释,以保证浏览任意配置文件的配置项都能直观了解该配置项的作用及用法. 2.访问配置值 你可以使用全局辅助函数 config 在应用的任意位置访问配置值,该配置值可以文件名+"."+配置项的方式进行访问,当配置项没有被配置的时候返回默认值: $value = config('app.timezone'); 如果要在运行时设置配置值,传递数组参数到 config 方法即可: config(['app.t

  • Flutter学习笔记(一)配置环境

    目录 背景 主题 当前环境 配置过程 下载flutter sdk 配置flutter sdk环境 背景 在日益内卷的开发圈子,多一项技能就意味着竞争力的提升,受到大环境的各种因素,所以有了这篇文章. 主题 本文主题,就是介绍如何配置flutter 当前环境 win10as2022.1.1版本jdk11 配置过程 下载flutter sdk 首先,从官网下载一个flutter的sdk,下载地址 博主当前使用版本为–flutter_windows_3.7.8-stable 配置flutter sdk

  • Laravel 5.3 学习笔记之 安装

    1.服务器要求 Laravel 框架有对服务器有少量要求,当然,Laravel Homestead 已经满足所有这些要求,所以我们强烈推荐使用 Homestead 作为 Laravel 本地开发环境(Mac的话还可以使用Valet作为本地开发环境). 不过,如果你没有使用 Homestead,那么需要保证开发环境满足以下要求: PHP版本 >= 5.6.4 PHP扩展:OpenSSL PHP扩展:PDO PHP扩展:Mbstring PHP扩展:Tokenizer 2.安装 Laravel La

  • Laravel 5.3 学习笔记之 错误&日志

    1.简介 Laravel默认已经为我们配置好了错误和异常处理,我们在App\Exceptions\Handler类中触发异常并将响应返回给用户.本教程我们将深入探讨这个类. 此外,Laravel还集成了Monolog日志库以便提供各种功能强大的日志处理器,默认情况下,Laravel已经为我们配置了一些处理器,我们可以选择单个日志文件,也可以选择记录错误信息到系统日志. 2.配置 错误详情显示 配置文件config/app.php中的debug配置项控制浏览器显示的错误详情数量.默认情况下,该配置

  • MongoDB 学习笔记(一)-MongoDB配置

    MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 步入正题: 下载MongoDB 下载地址:https://www.mongodb.com/download-center?jmp=nav 这里是在windows平台下安装MongoDB, 下载后,在本机,按提示进行安装. 注: 这个安装只

  • PHP学习笔记 (1) 环境配置与代码调试

    一配置PHP环境 1.了解什么是PHP PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写) PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用 2.PHP的背景和优势 PHP的发展背景 1).1994年由Rasmus Lerdorf创建,开始是一个简单的Perl语言编写的程序,用统计

  • springboot学习笔记之 profile多环境配置切换的实现方式

    前言 一个应用程序从开发到上线,往往需要经历几个阶段,例如开发.测试.上线.每个阶段所用到的环境的配置可能都是不一样的,Springboot 应用可以很方便地在各个环境中对配置进行切换.所以,今天主要介绍Springboot profiles实现多环境配置切换. profiles多环境配置切换的四种方式 多个配置文件的方式yml 多文档块方式 设置程序参数 设置虚拟机参数 1.多个配置文件的方式 1.1.修改application.properties server.port=8080 1.2.

  • 微信小程序学习笔记之目录结构、基本配置图文详解

    本文实例讲述了微信小程序学习笔记之目录结构.基本配置.分享给大家供大家参考,具体如下: 结束了一段时间的学习,开始一段新的学习旅程 -- 微信小程序.现在出去找工作只会PHP.HTML+CSS.JS什么的不够了,总得会点时下热门的东西,例如微信小程序,有很多企业的招聘要求上写着:"做过微信小程序的优先"."只要做过微信小程序的"...... 可见微信小程序的热门程度.话(fei)不(hua)多(ting)说(duo),开始学习. 首先在微信公众平台注册小程序账号:

  • Vue2.5学习笔记之如何在项目中使用和配置Vue

    最开始的项目开发中,我们如果使用第三方的库我们会直接在项目中直接使用 script 元素标签引入即可. <script src="../xxx.js"></script> Vue 我们也可以这种引入的方式 <div id="root">{{name}}</div> <script src="./dist/vue.js"></script> <script> con

  • MySQL主从配置学习笔记

    ● 本打算买个云数据,为我的新项目做点安全保障.阿里云,腾讯云转了一圈,两个字太贵.不就数据有备份吗,既然这样那我不如自己来做备份. ● 家里有2个树莓派直接把mysql备份到他们上就好了,网上有教程,这就开整.在segmentfault mysql 这么一搜好几篇,按照他们一说的那么一做,当然是不成功的,要是成功了我就不写这篇文章了.ps:他们的教程都是对的. ● 下面就开始配置主从服务器,和网上教程一样,因为我就是看他们的. 1. 主设置(master) 修改mysql配置文件,一般在/et

随机推荐