php 简单框架实现
实现一个简单的 PHP 框架
PHP 框架可以帮助快速构建应用程序,以下是一个基础框架的实现方法,包含路由、控制器和视图功能。
目录结构
/myframework
/app
/controllers
HomeController.php
/views
home.php
/public
index.php
/core
Router.php
Controller.php
核心路由实现
创建 /core/Router.php 文件处理路由:
class Router {
protected $routes = [];
public function addRoute($uri, $controller) {
$this->routes[$uri] = $controller;
}
public function dispatch($uri) {
if (array_key_exists($uri, $this->routes)) {
$controllerAction = explode('@', $this->routes[$uri]);
$controller = $controllerAction[0];
$method = $controllerAction[1];
require_once "../app/controllers/$controller.php";
$controllerInstance = new $controller();
$controllerInstance->$method();
} else {
throw new Exception("No route found for URI: $uri");
}
}
}
基础控制器
创建 /core/Controller.php 作为基础控制器:
class Controller {
protected function view($viewName, $data = []) {
extract($data);
require_once "../app/views/$viewName.php";
}
}
示例控制器
创建 /app/controllers/HomeController.php:
class HomeController extends Controller {
public function index() {
$data = ['title' => 'Home Page'];
$this->view('home', $data);
}
}
视图文件
创建 /app/views/home.php:
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h1>Welcome to <?php echo $title; ?></h1>
</body>
</html>
入口文件
创建 /public/index.php 作为应用入口:
require_once '../core/Router.php';
$router = new Router();
$router->addRoute('/', 'HomeController@index');
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$router->dispatch($uri);
运行框架
- 将项目放在 Web 服务器目录下(如 Apache 的 htdocs)
- 配置服务器将请求重定向到
/public/index.php - 访问
http://localhost即可看到首页
扩展功能建议
- 添加数据库支持(如 PDO 封装)
- 实现模型层处理数据
- 增加中间件支持
- 添加配置管理
- 实现自动加载(PSR-4)
- 增加错误处理机制
这个基础框架实现了 MVC 的核心概念,可以根据需要进一步扩展功能。







