我們正在構建一個基於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