以下是一个简单的 PHP 框架的代码示例:
<?php
// 定义应用根目录
define('APP_ROOT', dirname(__FILE__));
// 自动加载类文件
spl_autoload_register(function($class) {
require_once APP_ROOT . '/classes/' . $class . '.php';
});
// 路由分发
$uri = $_SERVER['REQUEST_URI'];
$route = Route::dispatch($uri);
// 控制器调用
$controller_name = $route['controller'] . 'Controller';
$controller = new $controller_name();
$action = $route['action'] . 'Action';
$controller->$action();
// 路由类
class Route {
public static function dispatch($uri) {
$parts = explode('/', $uri);
$controller = !empty($parts[1]) ? $parts[1] : 'index';
$action = !empty($parts[2]) ? $parts[2] : 'index';
return array(
'controller' => $controller,
'action' => $action
);
}
}
// 控制器基类
abstract class Controller {
protected function render($view, $params = array()) {
extract($params);
require_once APP_ROOT . '/views/' . $view . '.php';
}
}
// 首页控制器
class IndexController extends Controller {
public function indexAction() {
$this->render('index/index', array(
'message' => 'Hello, world!'
));
}
}