我有专为练习 OOP 和 MVC 技能而构建的中小型 PHP 应用程序。我有init/bootstrap文件,它调用Router调用Controller -> Service Layer -> Repository (Database),然后将变量发送回View Layer(所有依赖项都使用 DiC/IOC 处理)。
我创建了扩展 Core Exception类的抽象类 BaseException。然后我有不同的异常类 - DatabaseException、FileException 等。
触发异常的示例:在数据库层中,我尝试从数据库中获取数据,如果失败则抛出新的 DatabaseException。
示例 2:在我处理文件包含、保存、删除的类中 - 如果发生错误,它会抛出新的 FileException。
在哪里放置 try catch 代码,在 init/bootstrap 文件或 BaseController 中?但是如果 Controller 失败并抛出某种 ControllerException 呢?
在我看来,它可能看起来像这样(init.php文件):
try {
// create new router
$router = $container->get('Router');
$router->import'Config/routes.php');
// run the router
$router->route();
// load controller
$dispatcher = $container->get('Dispatcher');
$dispatcher->load(); …Run Code Online (Sandbox Code Playgroud)