php分层怎么实现
PHP分层实现方法
PHP分层架构通常采用MVC(Model-View-Controller)模式,将业务逻辑、数据操作和界面展示分离。以下是常见的分层实现方式:
目录结构组织
创建清晰的目录结构是分层的基础:
app/
├── Controllers/ # 控制器层
├── Models/ # 模型层
├── Views/ # 视图层
├── Services/ # 服务层(可选)
├── Repositories/ # 数据访问层(可选)
└── config/ # 配置文件
控制器层实现
控制器负责处理HTTP请求和响应:
// app/Controllers/UserController.php
class UserController {
public function show($id) {
$user = UserModel::find($id);
include 'app/Views/user/show.php';
}
}
模型层实现
模型处理业务逻辑和数据操作:

// app/Models/UserModel.php
class UserModel {
protected $table = 'users';
public static function find($id) {
// 数据库查询逻辑
return $db->query("SELECT * FROM {$this->table} WHERE id = $id");
}
}
视图层实现
视图负责展示数据:
<!-- app/Views/user/show.php -->
<html>
<body>
<h1><?php echo $user['name']; ?></h1>
</body>
</html>
服务层(可选)
服务层处理复杂业务逻辑:
// app/Services/UserService.php
class UserService {
public function register($userData) {
// 验证逻辑
// 业务处理
return UserModel::create($userData);
}
}
数据访问层(可选)
Repository模式抽象数据访问:

// app/Repositories/UserRepository.php
class UserRepository {
public function findById($id) {
return DB::table('users')->find($id);
}
}
依赖管理
使用Composer实现自动加载:
// composer.json
{
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
路由配置
实现前端控制器模式:
// index.php
$request = $_SERVER['REQUEST_URI'];
switch ($request) {
case '/user/show':
$controller = new UserController();
$controller->show($_GET['id']);
break;
}
依赖注入
通过依赖注入解耦各层:
class UserController {
private $userService;
public function __construct(UserService $userService) {
$this->userService = $userService;
}
public function register() {
$this->userService->register($_POST);
}
}
这种分层架构使代码更易维护、测试和扩展,各层职责明确,符合单一职责原则。






