php设计实现
PHP 设计实现的关键方法
面向对象编程(OOP)
PHP 支持面向对象编程,利用类、对象、继承、多态等特性提高代码复用性和可维护性。类定义需使用 class 关键字,成员变量和方法通过访问修饰符(如 public、private)控制可见性。
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
MVC 架构模式
Model-View-Controller 模式分离业务逻辑、数据和界面。Model 处理数据操作,View 负责展示,Controller 协调两者。框架如 Laravel、Symfony 内置 MVC 支持。
// Controller 示例
class UserController {
public function show($id) {
$user = User::find($id);
return view('user.profile', ['user' => $user]);
}
}
数据库交互
PDO(PHP Data Objects)提供统一的数据库访问接口,支持参数化查询防止 SQL 注入。连接需配置 DSN(数据源名称)。
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
$stmt->execute(['id' => 1]);
$user = $stmt->fetch();
依赖注入与容器
依赖注入通过外部传递依赖对象降低耦合。容器(如 Laravel 的 Service Container)自动管理依赖关系。
class Logger {
public function log($message) {
file_put_contents('app.log', $message);
}
}
class UserService {
private $logger;
public function __construct(Logger $logger) {
$this->logger = $logger;
}
}
中间件与请求处理
中间件在请求前后执行逻辑(如验证、日志)。可通过闭包或类实现,常见于路由处理。
$middleware = function($request, $next) {
if (!auth()->check()) {
return redirect('login');
}
return $next($request);
};
缓存优化
使用缓存(如 Redis、Memcached)减少数据库负载。APCu 适合单机缓存,Redis 支持分布式。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('key', 'value', 3600); // 缓存1小时
单元测试
PHPUnit 是主流测试框架,支持断言和模拟对象。测试类需继承 PHPUnit\Framework\TestCase。
class UserTest extends TestCase {
public function testUserName() {
$user = new User();
$user->setName('Alice');
$this->assertEquals('Alice', $user->getName());
}
}






