调用不存在的控制器,如何生成异常?

时间:2010-09-02 13:15:44

标签: php model-view-controller

我正在写自己的小MVC,我有一个问题......我正在将$_SERVER['REQUEST_URI']传递给Router类,它返回控制器,它的动作和GET参数数组。 (例如,路由器说我应该拨打App_Controller->index())。

因此,我应该创建App_Controller的实例并调用index()方法。所以,我正在做类似$controller = new $controller_name等的事情。但是如果spl_autoload_register()找不到控制器怎么办(我正在使用自动加载)。

如何在未找到控制器的情况下生成异常?或者也许我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用class_exists进行检查,该{{3}}具有$ autoload参数(默认设置为true,因此尝试自动加载该类)。

if(!class_exists($controller_name)) throw new Exception('Controller does not exist'); 
$controller = new $controller_name();