一聚教程网:一个值得你收藏的教程网站

热门教程

Lumen 5.2安装配置详解说明

时间:2022-06-25 00:42:17 编辑:袖梨 来源:一聚教程网

一,安装

1、服务器要求

Lumen框架对服务器有少许要求,当然,Laravel Homestead虚拟机已经满足所有这些要求,所以强烈推荐使用Homestead作为本地开发环境。

如果你没有使用Homestead,那么需要确保服务器满足以下要求:

PHP >= 5.5.9
OpenSSL PHP Extension
Mbstring PHP Extension
PDO PHP Extension

2、安装Lumen

Lumen使用Composer来管理依赖,所以,在使用之前,确保你已经在机器上安装了Composer。

通过Lumen安装器

首先,使用Composer下载Lumen安装器:

composer global require "laravel/lumen-installer"

确保~/.composer/vendor/bin在系统路径PATH中,否则不能在命令行调用lumen命令。

安装完成后,只需简单通过lumen new命令就可以在当前目录下创建一个新的Lumen应用,例如,lumen new blog将会创建一个名为blog的Lumen安装目录,该目录中已经包含了所有Lumen依赖。该安装方法比通过Composer安装要快很多:

lumen new blog

通过Composer Create-Project安装

你还可以在终端中通过Composer的create-project命令来安装Lumen:

composer create-project --prefer-dist laravel/lumen blog

3、配置

Lumen框架的所有配置都存放在.env文件,安装好Lumen后,需要配置本地开发环境。

Application Key

安装完Lumen后,需要设置APP_KEY为32位长的随机字符串,该key被配置在.env环境文件中(APP_KEY),如果你还没有将.env.example文件重命名为.env,现在立即这样做。如果key没有被设置,用户sessions和其它加密数据将会有安全隐患!

二,配置

1.访问配置值

你可以使用全局的辅助函数config来访问配置值,配置值可以通过”.”来分隔配置文件和配置项,如果配置项不存在的话则会返回默认值:

$value = config('app.timezone');
如果要在运行时设置配置值,传递一个数组到config函数:

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

3、环境配置

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

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

在每次应用接受请求时,.env中列出的所有变量都会被载入到PHP超全局变量$_ENV中,然后你就可以在应用中通过辅助函数env来获取这些变量值:

$debug = env('APP_DEBUG', true);

第二个传递给env函数的值是默认值,如果给定key对应的环境变量不存在则使用该默认值。

不要把.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...
}

热门栏目