Laravel 4.x(2013年发布)是框架发展的重要里程碑,主要特性如下:
1. 组件化架构
- 采用 Composer 依赖管理 ,将框架拆分为独立组件(如
illuminate/routing) - 通过
composer.json实现模块化安装,例如:
json
"require": {
"laravel/framework": "4.2.*"
}
2. 路由系统增强
- 支持 RESTful 控制器:
php
Route::resource('photos', 'PhotoController');
- 路由过滤器实现权限控制:
php
Route::get('admin', ['before' => 'auth', function() {...}]);
3. 数据库迁移与填充
- 引入 Artisan 命令行工具 管理数据库:
bash
php artisan migrate
php artisan db:seed
- 迁移文件示例:
php
Schema::create('users', function($table) {
$table->increments('id');
$table->string('email')->unique();
});
4. Eloquent ORM 改进
- 支持 多态关联:
php
class Photo extends Eloquent {
public function imageable() {
return $this->morphTo();
}
}
- 批量赋值保护 通过
$fillable/$guarded属性
5. 队列系统
- 统一接口支持 多种队列驱动(Beanstalkd, Redis, SQS)
php
Queue::push('SendEmail', ['message' => $message]);
6. 事件机制
- 观察者模式实现解耦:
php
Event::listen('auth.login', function($user) {
$user->last_login = new DateTime;
$user->save();
});
7. 新模板特性
- Blade 模板 新增
@include指令:
blade
@include('shared.header')
- 布局继承 简化模板结构:
blade
@extends('layouts.master')
@section('content') ... @endsection
8. 安全增强
- 内置 CSRF 保护:
blade
<input type="hidden" name="_token" value="{{ csrf_token() }}">
- 密码哈希 使用 Bcrypt 算法:
php
Hash::make('secret');
9. 单元测试支持
- 集成 PHPUnit 并提供测试助手:
php
public function testBasicExample() {
$this->call('GET', '/');
$this->assertResponseOk();
}
注意:Laravel 4.x 已于 2015 年停止维护,建议新项目使用 5.x 以上版本。其组件化设计理念深刻影响了后续版本发展,IoC 容器、中间件等核心概念在此版本已奠定基础。