框架生态
Yii/Laravel 概念、路由与 MVC。
30 分钟
框架生态
PHP 主流框架 Laravel、Symfony、Yii 提供路由、MVC、ORM 与中间件,避免重复造轮子。前置 php-essentials;对照 Spring 见 spring-boot-essentials;路径 /roadmaps/php。
学习目标
- 理解 MVC 在 PHP 框架中的分工
- 用 Laravel 或 Yii 定义路由与控制器
- 知道何时选框架、何时用原生 PHP
MVC 结构
| 层 | 职责 | Laravel 示例 |
|---|---|---|
| Model | 数据与业务规则 | App\Models\Lesson |
| View | 展示(HTML/JSON) | Blade 模板 / API Resource |
| Controller | 协调请求与响应 | LessonController |
与 Spring Boot 类似:Controller 收请求,Service 处理逻辑,Repository 访问数据库。
Laravel 路由与控制器
// routes/web.php
Route::get('/lessons/{slug}', [LessonController::class, 'show']);
// app/Http/Controllers/LessonController.php
class LessonController extends Controller {
public function show(string $slug): JsonResponse {
$lesson = Lesson::where('slug', $slug)->firstOrFail();
return response()->json($lesson);
}
}
php artisan serve --port=8080
Yii 概念对照
// config/web.php
'urlManager' => [
'enablePrettyUrl' => true,
'rules' => [
'GET lessons/<slug:\w+>' => 'lesson/view',
],
],
Yii 在国内企业项目中仍常见;Laravel 国际社区更活跃。
选型建议
| 场景 | 建议 |
|---|---|
| 快速 API / 全栈 | Laravel |
| 大型企业组件化 | Symfony |
| 维护现有 Yii 项目 | 继续 Yii 3 |
| 极简脚本 / 学习 | 原生 PHP |
练习
- 用 Laravel 创建
GET /api/tracks返回 JSON 列表 - 添加中间件记录请求日志
- 对照 Spring
@GetMapping与 LaravelRoute::get