官方示例
Slim中给出的调用Controller的方法如下:
$app->get('/home', '\HomeController:home');
通过给出的示例可以看出,路由的第二个参数是具体Controller的命名空间和方法的结合。
创建目录
我们将所有的控制器对象都放在根目录下的controllers目录,具体的控制器类文件还可以根据功能进行多级目录划分。
// \controllers\admin\homeController.php
<?php
namespace Controllers\Admin;
class homeController
{
public function home($req,$res,$args){
echo 'it works!';
}
}
自动加载Controller
在PHP中创建对象必须先引入类的文件,由于Slime通过composer安装,我们直接利用composer的psr-4自动加载即可。
- 在composer中配置自动加载
"autoload":{
"psr-4":{
"Controllers\\":"controllers/"
}
}
- 更新composer中的autoload
composer dump-autoload [--optimize]
# --optimize 用于优化自动加载的效率,可选
# 在安装依赖时采用如下语句,也可以达到优化自动加载效率的效果
# composer install --optimize-autoloader
- 在路由文件中调用控制器
$app->get('/home','\Controllers\Admin\HomeController:home');