我正在写自己的小MVC,我有一个问题......我正在将$_SERVER['REQUEST_URI']
传递给Router
类,它返回控制器,它的动作和GET参数数组。
(例如,路由器说我应该拨打App_Controller->index()
)。
因此,我应该创建App_Controller
的实例并调用index()
方法。所以,我正在做类似$controller = new $controller_name
等的事情。但是如果spl_autoload_register()
找不到控制器怎么办(我正在使用自动加载)。
如何在未找到控制器的情况下生成异常?或者也许我做错了什么?
谢谢。
答案 0 :(得分:0)
您可以使用class_exists
进行检查,该{{3}}具有$ autoload参数(默认设置为true,因此尝试自动加载该类)。
if(!class_exists($controller_name)) throw new Exception('Controller does not exist');
$controller = new $controller_name();