Laravel 5.x 是 Laravel 框架的重要版本迭代,主要包含以下核心特性:
1. 路由缓存(Route Caching)
- 通过
php artisan route:cache生成路由缓存文件,大幅提升路由解析速度。 - 适用于生产环境,但需注意路由变更后需重新生成缓存。
2. 中间件(Middleware)替代过滤器
-
废弃了 HTTP 过滤器,引入更灵活的中间件机制。
-
支持全局中间件、路由组中间件和路由级中间件。
-
示例代码:
php// 定义中间件 class CheckAge { public function handle($request, Closure $next) { if ($request->age <= 18) { return redirect('home'); } return $next($request); } }
3. Blade 模板改进
-
新增
@include指令支持直接传递变量:blade@include('view.name', ['key' => 'value']) -
引入
@push和@stack指令管理区块内容。
4. Eloquent 模型增强
- 批量赋值保护改进 :支持
$fillable(白名单)和$guarded(黑名单)更精细控制。 - 访问器与修改器 :通过方法命名规范(如
getFirstNameAttribute)实现属性动态处理。 - 查询作用域 :支持全局作用域(
Global Scope)和本地作用域(Local Scope)。
5. 命令总线(Command Bus)
-
将业务逻辑封装为可复用的命令对象:
phpphp artisan make:command SendEmail -
支持命令队列化处理,提升系统解耦能力。
6. 事件广播(Event Broadcasting)
-
通过 WebSocket 驱动(如 Pusher、Redis)实现实时事件推送。
-
事件类需实现
ShouldBroadcast接口:phpclass OrderShipped implements ShouldBroadcast { public function broadcastOn() { return new Channel('orders'); } }
7. Scheduler 定时任务
-
通过
app/Console/Kernel.php的schedule方法配置计划任务:php$schedule->command('backup:run')->daily(); -
需配合服务器 Cron 任务触发:
* * * * * php artisan schedule:run.
8. Flysystem 集成
-
统一存储 API 支持本地、Amazon S3、Rackspace 等云存储。
-
示例:
phpStorage::disk('s3')->put('file.txt', 'content');
9. Dotenv 环境配置
- 使用
.env文件管理环境变量,替代传统config目录的敏感数据存储。 - 支持不同环境(如
.env.production)的快速切换。
10. Artisan 命令增强
- 新增
make:controller --resource快速生成 RESTful 控制器。 - 支持
php artisan serve内置开发服务器。
11. Laravel Elixir(5.3+)
-
基于 Gulp 的前端工作流工具,简化 CSS/JS 编译、版本控制等操作:
javascriptelixir(mix => { mix.sass('app.scss').webpack('app.js'); });
版本差异提示:
- 5.1 引入长生命周期支持(LTS),Eloquent 新增
createOrUpdate方法。- 5.2 添加身份验证脚手架(
make:auth),中间件组支持。- 5.3 优化通知系统(
Notification),增加全文搜索 Scout 包。- 5.4 支持 Markdown 邮件,Blade 新增
@component指令。- 5.5 自动包发现(Package Auto-Discovery),错误处理优化。