网站首页 > 知识剖析 正文
以下是一个简单的 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!'
));
}
}
该示例实现了一个基本的 MVC 框架,可以根据 URL 路径调用不同的控制器和动作,并自动加载类文件。当然,这仅仅是一个非常简单的框架,实际开发中可以根据需求进行扩展。
猜你喜欢
- 2025-04-30 WordPress使用CDN后显示评论真实IP
- 2025-04-30 webman 事务回滚失效问题记录(事务回滚指令rollback执行的结果是)
- 2025-04-30 如何在WordPress文章分页中添加阅读全文按钮
- 2025-04-30 提权之disable_functions(三)(提权分为哪几个种类)
- 2025-04-30 ThinkPHP后台入口地址查找(thinkphp .htaccess)
- 2025-04-30 Thinkphp3.2.3及以下版本漏洞整理
- 2025-04-30 「某CMS漏洞」SQL注入漏洞分析(sql注入漏洞代码)
- 2025-04-30 PHP漏洞之跨网站请求伪造(php伪造来路跨域跳转)
- 2025-04-30 实现AI API Tokens计费产品方案和技术实现方案设计(PhalApi框架)
- 2025-04-30 习惯了各种框架的文件上传,php原生上传图片你还记得吗?
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)