用php写一个mvc框架
时间: 2023-07-18 12:25:14 浏览: 64
好的,以下是一个简单的 PHP MVC 框架的示例:
1. 首先,你需要创建一个名为 index.php 的文件,在其中定义常量和引入必要的文件:
```php
<?php
// 定义常量
define('APP_PATH', realpath(__DIR__) . '/');
define('CONTROLLER_PATH', APP_PATH . 'controllers/');
define('MODEL_PATH', APP_PATH . 'models/');
define('VIEW_PATH', APP_PATH . 'views/');
// 引入必要的文件
require_once(APP_PATH . 'core/Controller.php');
require_once(APP_PATH . 'core/Model.php');
require_once(APP_PATH . 'core/View.php');
```
2. 创建一个名为 Controller.php 的文件,并定义一个名为 Controller 的类,该类包含一个默认的 index 方法:
```php
<?php
class Controller {
public function index() {
echo 'Hello World!';
}
}
```
3. 创建一个名为 Model.php 的文件,并定义一个名为 Model 的类:
```php
<?php
class Model {
// 在这里定义模型类的方法
}
```
4. 创建一个名为 View.php 的文件,并定义一个名为 View 的类:
```php
<?php
class View {
// 在这里定义视图类的方法
}
```
5. 创建一个名为 routes.php 的文件,其中包含路由规则:
```php
<?php
$routes = array(
'/' => 'Controller@index',
'/about' => 'Controller@about',
'/contact' => 'Controller@contact'
);
```
6. 最后,在 index.php 文件中添加路由和控制器的代码:
```php
<?php
// 引入路由规则
require_once(APP_PATH . 'routes.php');
// 获取请求的 URL
$request_url = $_SERVER['REQUEST_URI'];
// 查找路由规则
foreach ($routes as $route => $controller_action) {
// 如果请求的 URL 匹配路由规则
if ($route === $request_url) {
// 解析控制器和方法名
list($controller_name, $action_name) = explode('@', $controller_action);
// 创建控制器实例并调用方法
require_once(CONTROLLER_PATH . $controller_name . '.php');
$controller = new $controller_name;
$controller->$action_name();
exit;
}
}
// 如果没有匹配的路由规则,则显示 404 页面
http_response_code(404);
echo 'Page not found';
```
以上就是一个简单的 PHP MVC 框架的示例。当然,这只是一个示例,实际的 MVC 框架需要更多的功能和更复杂的实现。