我们正在构建一个基于Good old codeigniter框架的PHP应用程序,并且遇到了由多个模型调用组成的大规模链接操作问题,这些操作一起是数据库大事务的一部分。在PHP中处理错误
我们希望能够做一个动作列表,并从函数返回每个动作的状态报告,无论结果如何。
我们的第一个初步想法是利用PHP5的异常,但由于我们还需要不破坏脚本执行的状态消息,这是我们提出的解决方案。
它去有点像这样:
$sku = $this->addSku($name);
if ($sku === false) {
$status[] = 'Something gone terrible wrong';
$this->db->trans_rollback();
return $status;
}
$image= $this->addImage($filename);
if ($image=== false) {
$error[] = 'Image could not be uploaded, check filesize';
$this->db->trans_rollback();
return $status;
}
我们的控制器是这样的:
$var = $this->products->addProductGroup($array);
if (is_array($var)) {
foreach ($var as $error) {
echo $error . '<br />';
}
}
这似乎是一个非常脆弱的解决方案做我们所需要的,但它没有可扩展性例如,与纯粹的PHP例外情况相比,这两种方法都不起作用
这真的是这种东西通常在基于MVC的应用程序中处理的方式吗?
谢谢!
更新: 已经做了一个公平的谷歌搜索,发现这个PHP函数:register_shutdown_function。 难道这就是我们正在寻找的?我不知道,不能得到它的工作,我们希望它... 参考方式:http://php.net/manual/de/function.register-shutdown-function.php
Original post updated。 – Industrial 2010-04-30 11:11:32