模式切换
PHP 常用框架
Laravel
MVC 模式:
- Laravel 采用 MVC(Model-View-Controller)架构,将业务逻辑、界面和数据分离,提高代码的可维护性。
- Model:负责数据处理,使用 Eloquent ORM 与数据库交互。
- View:负责界面展示,通常使用 Blade 模板引擎。
- Controller:处理请求并返回响应,将 Model 数据传递给 View。
路由:
Laravel 提供了简洁的路由定义方式,能够匹配 HTTP 请求的方法和路径。
php
// 定义一个 GET 路由
Route::get('/home', 'HomeController@index');
// 定义一个带参数的路由
Route::get('/user/{id}', 'UserController@show');
控制器:
控制器用于处理 HTTP 请求,并将结果传递给视图或返回响应。
php
class UserController extends Controller {
public function show($id) {
$user = User::find($id);
return view('user.profile', ['user' => $user]);
}
}
视图(Blade 模板引擎):
Blade 是 Laravel 的模板引擎,支持模板继承和数据渲染。
blade
<!-- 视图文件 resources/views/user/profile.blade.php -->
<h1>Hello, {{ $user->name }}</h1>
Eloquent ORM:
提供了 Active Record 模式的数据库操作方式,简化了数据的增删改查。
php
// 创建新记录
$user = new User;
$user->name = 'John Doe';
$user->save();
// 查询记录
$users = User::where('status', 'active')->get();
Symfony
组件化开发:
Symfony 是高度组件化的框架,可以按需使用其组件(如路由、模板引擎、表单处理等)进行开发。
服务容器:
Symfony 提供依赖注入服务容器来管理对象的创建和生命周期,减少了对象之间的耦合。
yaml
# 配置服务容器 services.yaml
services:
App\Service\MyService:
arguments:
- '@another_service'
事件调度:
Symfony 提供事件调度机制,允许在某个事件发生时触发监听器执行特定的操作。
php
// 创建事件监听器
class MyEventListener {
public function onUserRegister(Event $event) {
// 处理事件
}
}
CodeIgniter 或 Yii
CodeIgniter:
- CodeIgniter 是一个轻量级的 PHP 框架,具有简单的配置和小巧的代码库,适用于快速开发小型应用。
- MVC 架构:提供基础的 MVC 结构,用于组织代码。
- URL 路由:支持简易的路由定义方式。
php
// CodeIgniter 控制器示例
class Welcome extends CI_Controller {
public function index() {
$this->load->view('welcome_message');
}
}
Yii:
- Yii 是另一个轻量级的 PHP 框架,具有高性能,适用于大型应用开发。
- 提供了丰富的内置功能,如身份验证、数据访问对象(DAO)、Active Record、缓存、AJAX 支持等。
ThinkPHP
国产 PHP 框架:
- ThinkPHP 是一个国产的 PHP 开发框架,广泛应用于中国的 Web 开发。
- 提供完整的 MVC 支持和 RESTful 路由机制,适合开发中小型项目。
快速开发:
支持代码生成和自动化构建工具,提升开发效率。
php
// ThinkPHP 控制器示例
namespace app\index\controller;
use think\Controller;
class Index extends Controller {
public function index() {
return $this->fetch();
}
}
丰富的内置功能:
ThinkPHP 提供了常用的功能,如数据库操作、缓存、日志管理等,方便开发者快速上手。