以下是一个简单的PHP应用实例,通过路由的方式处理不同URL的请求。我们将使用基本的路由规则来区分不同的请求,并在相应的控制器中处理它们。
1. 项目结构
我们需要创建一个基本的目录结构:

```
/project-root/
│
├── app/
│ ├── controllers/
│ │ ├── HomeController.php
│ │ └── ProductController.php
│ │
│ ├── routes/
│ │ └── routes.php
│ │
│ └── views/
│ ├── home.php
│ └── product.php
│
└── public/
└── index.php
```
2. 创建控制器
控制器负责处理特定路由的请求。以下是我们将使用的两个控制器:
HomeController.php
```php
namespace App""Controllers;
class HomeController
{
public function home()
{
return 'Welcome to the Home Page!';
}
}
```
ProductController.php
```php
namespace App""Controllers;
class ProductController
{
public function product()
{
return 'This is the Product Page!';
}
}
```
3. 创建路由文件
路由文件定义了URL和控制器方法之间的映射。以下是`routes.php`的
```php
namespace App""Routes;
use App""Controllers""HomeController;
use App""Controllers""ProductController;
class Routes
{
public static function init()
{
$routes = [
'/' => 'HomeController@home',
'/product' => 'ProductController@product',
];
foreach ($routes as $uri => $action) {
$parts = explode('@', $action);
$controller = $parts[0];
$method = $parts[1];
require_once __DIR__ . '/..' . '/app/controllers/' . $controller . '.php';
$controllerInstance = new $controller();
echo $controllerInstance->$method();
}
}
}
```
4. 启动应用程序
我们需要在`public/index.php`中设置路由:
```php
require_once __DIR__ . '/..' . '/app/routes/routes.php';
Routes::init();
```
5. 测试路由
现在,如果你在浏览器中访问`/`,你将看到“Welcome to the Home Page!”的输出。如果你访问`/product`,你将看到“ This is the Product Page!”的输出。
| URL | ControllerMethod |
|---|---|
| / | HomeController@home |
| /product | ProductController@product |


