【发布时间】:2010-04-28 21:23:49
【问题描述】:
我们正在构建一个基于 Good old codeigniter 框架的 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
【问题讨论】:
标签: php codeigniter error-handling