安装
安装
安装
运行环境要求
Lumen 框架会有一些系统上的要求。当然,这些要求在 Laravel Homestead 虚拟机上都已经完全配置好了:
- PHP >= 5.5.9
- OpenSSL PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
Summer: 是的,Laravel 的开发中,使用 Homestead 是必须的,不论你是一个人开发项目,还是团队开发,不管你是新手,还是老手,请使用 Homestead。可参考 Homestead 的环境部署脚本 来实现开发环境和生产环境的统一。
安装 Lumen
Lumen 使用 Composer 来管理代码依赖。所以,在使用 Lumen 之前,请先确认你的电脑上安装了 Composer。
通过 Lumen 安装器
首先,使用 Composer 下载 Lumen 安装包:
composer global require "laravel/lumen-installer=~1.0"
请确定你已将 ~/.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 laravel/lumen blog "5.1.*"
配置信息
基本配置
跟全栈框架 Laravel 框架不一样的是,所有的 Lumen 框架的配置信息都存储在 .env
文件中。
目录权限
安装 Lumen 之后,你必须设置一些权限。storage
和 bootstrap/cache
目录必须让服务器有写入权限。如果你使用 Homestead 虚拟机,那么这些权限应该已经被设置完成。
应用程序密钥
在你安装完 Lumen 后,首先需要做的事情是设置一个随机字符串到应用程序密钥。通常这个密钥会有 32 字符长。这个密钥可以被设置在 .env
环境文件中。如果你还没将 .env.example
文件重命名为 .env
,那么你现在应该去设置下。如果应用程序密钥没有被设置的话,你的用户 Session 和其它的加密数据都是不安全的!
注意: 你需要去除文件
bootstrap/app.php
中的Dotenv::load()
代码注释,这样.env
文件才能被加载。
Lumen needs almost no other configuration out of the box. You are free to get started developing!
You may also want to configure a few additional components of Lumen, such as:
其它设置
Lumen 几乎不需做任何其它设置就可以马上使用。
你也可以设置 Lumen 的几个附加组件,像是:
优雅链接
Apache
框架通过 public/.htaccess
文件来让网址不需要 index.php
。如果你的服务器是使用 Apache,请确认是否有开启 mod_rewrite
模块。
如果 Lumen 附带的 .htaccess
文件在 Apache 中无法使用的话,请尝试下方的做法:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx
若你使用了 Nginx,则可以在网站设置中增加以下设置,以开启「优雅链接」:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
当然,如果你使用了 Homestead 的话,优雅链接已经自动帮你设置好了。
环境配置
应用程序常常需要根据不同的运行环境设置不同的值。例如,你会希望在本机开发环境上有与正式环境不同的缓存驱动。只需通过配置文件就可轻松完成。
Lumen 使用 Vance Lucas 的 DotEnv PHP 函数库来实现项目内环境变量的控制,在安装好的全新 Lumen 应用程序里,在根目录下会包含一个 .env.example
文件。如果你通过 Composer 安装 Lumen,这个文件将自动被更名为 .env
,否则你只能手动更改文件名。
当你的应用程序收到请求时,这个文件所有的变量都会被加载到 PHP 超级全局变量 $_ENV
里。你可以使用辅助函数 env
来获取这些变量的值。
根据本机服务器或者正式环境的需求的不同,可自由修改环境变量。但是,.env
文件不应该被提交到应用程序的版本控制系统,因为每个开发人员或服务器在使用应用程序时,可能需要不同的环境配置。
如果你是某个团队的开发者,建议将 .env.example
文件放进你的应用程序。通过样本配置文件里的预设值,你团队中的其他开发人员就可以清楚地知道,在运行你的应用程序时有哪些环境变量是必须有的。
配置文件
Lumen 可以支持使用 Laravel 风格
的配置信息,只需要将 vendor/laravel/lumen-framework/config
文件夹复制到项目根目录下即可。
自定义配置文件
你可以使用 $app->configure()
方法来加载自定义的配置信息,例如你想加载 config/options.php
配置文件,可以使用以下调用:
$app->configure('options');
获取目前应用程序的环境
应用程序的当前环境是由 .env
文件中的 APP_ENV
变量所决定的。你可以通过 App
facade 的 environment
方法来获取该值:
$environment = App::environment();
你也可以传递参数至 environment
方法来确认当前环境是否与参数相符合:
if (App::environment('local')) {
// 环境是 local
}
if (App::environment('local', 'staging')) {
// 环境是 local 或 staging...
}
也可通过 app
辅助函数获取应用程序实例:
$environment = app()->environment();
获取设置值
你可以使用 config
辅助函数获取你的设置值,设置值可以通过「点」语法来获取,其中包含了文件与选项的名称。你也可以指定一个默认值,当该设置选项不存在时就会返回默认值:
$value = config('app.timezone');
若要在运行期间修改设置值,请传递一个数组至 config
辅助函数:
config(['app.timezone' => 'America/Chicago']);