参考网址:数据库 | 更多功能 |《Lumen 中文文档 5.5 5.5》| Laravel China 社区
Lumen 框架对系统有几点要求。当然,所有的要求虚拟机 Laravel Homestead 都可以满足,所以我们强烈推荐你使用 Homestead 作为你的本地开发环境。
但如果你暂时没有使用 Homestead 环境开发,那么请必须满足以下条件:
Lumen 使用 Composer 来管理代码依赖。所以,在使用 Lumen 之前,请先确认你的电脑上安装了 Composer。
通过 Lumen 安装器
首先,使用 Composer 下载 Lumen 安装包:
composer global require "laravel/lumen-installer"
请确定你已将 ~/.composer/vendor/bin
路径加到 PATH,只有这样系统才能找到 lumen 的执行文件。
一旦安装完成,就可以使用 lumen new
命令在指定的目录创建一个新的 Lumen 项目,例如:lumen new blog
将会在当前目录下创建一个叫 blog
的目录,此目录里面存放着新安装的 Lumen 和所有代码依赖。这种方法的安装速度比通过 Composer 安装要快上许多:
lumen new blog
通过 Composer Create-Project 命令
除此之外,你也可以在命令行使用 Composer 的 create-project
命令来安装 Lumen :
composer create-project --prefer-dist laravel/lumen blog
为了能在本地运行你的应用程序,你可以使用 Laravel Homestead 虚拟机,Laravel Valet, 或者 PHP 内置的开发服务器 :
php -S localhost:8000 -t public
跟全栈框架 Laravel 框架不一样的是,所有的 Lumen 框架的配置信息都存储在 .env
文件中。一旦 Lumen 成功安装,你需要去 配置本地环境。
应用程序密钥
在你安装完 Lumen 后,首先需要做的事情是设置一个随机字符串到应用程序密钥。通常这个密钥会有 32 字符长。这个密钥可以被设置在 .env
环境文件中。如果你还没将 .env.example
文件重命名为 .env
,那么你现在应该去设置下。如果应用程序密钥没有被设置的话,你的用户 Session 和其它的加密数据都是不安全的!
Lumen 框架所有的配置信息都存储在 .env
文件中。
你可以在应用的任何地方使用全局辅助函数 config()
来轻松获取你的配置信息。设置值可以通过「点」语法来获取,其中包含了文件与选项的名称。你也可以指定一个默认值,当该设置选项不存在时就会返回默认值:
$value = config('app.locale');
若要在运行期间修改设置值,请传递一个数组至 config
辅助函数:
config(['app.locale' => 'en']);
这对于应用需要运行在不同环境下的情况来说是非常有用的。例如,你希望本地的开发环境和生产环境使用不同的缓存驱动,那么使用
基础环境配置就比较容易实现。
Vance Lucas 开发的 Lumen 组件 -- DotEnv PHP 库就可以做到。在新安装的 Lumen 应用根目录中有一个 .env.example
文件,在你创建你的应用时,你须要将 .env.example
命名为或拷贝一份命名为 .env
。
当应用启动后,env
文件中的所有变量会加载到 PHP 全局变量 $_ENV
中。你可以使用 env()
函数获取到已加载的环境变量:
$ debug = env('APP_DEBUG', true);
env()
函数的第二个参数是 “默认值”,当函数未检索到第一个参数对应的值时,将使用给定的默认值。
不要将 .env
文件提交到你的代码版本管理库,防止不同使用者 / 服务器配置需求与你不同。
如果你是团队开发,你可能希望应用包含 .env.example
文件。其他开发者通过对比 .env.example
文件的配置项,可以清楚地看到运行应用所需的配置项。
你可以查看 .env
文件中的 APP_ENV
配置项来确定当前环境。你也可以通过应用实例的 environment()
方法来获取 APP_ENV
的具体值:
$environment = app()->environment();
你也可以传参数给 environment()
方法来检测是否匹配给定的参数值。如有必要,可以给 environment()
方法传多个参数值,当环境值匹配其中任一值时,将返回 true
:
if (app()->environment('local')) {
// 运行环境为 local
}
if (app()->environment('local', 'staging')) {
// 运行环境为 local 或 staging
}