codeigniterフレームワークでdoctrine 1.2 ORMの例外をすべてキャッチするにはどうすればよいかと思いますが、index.php全体をtry catchでラップするのは嫌ですがクエリの前後にtry catchを実行します。CodeigniterのDoctrine例外をキャッチする最善の方法
答えて
まず、index.php
で1行だけを囲む必要があります。実際には、(プロダクション環境などで)表示したくない例外がある場合には、これが有効です。
2番目の点は、データベース関連のコードをモデルに集中させることです。だから、あなたはあなただけSafeQueryHelper::safeQueryRun($query,$params,$hydration)
にすべてのモデルで$query->execute($params,$hydration)
を置き換えますたより
class SafeQueryHelper{
public static function safeQueryRun(Doctrine_Query $q, array $parameters, $hydration=Doctrine_Core::HYDRATE_RECORD){
try{
return $q->execute($parameters, $hydration);
}
catch(Exception $e){
//Handle yur exceptions here
}
}
}
のようなものであるヘルパークラスを導入することがあります。 $this->load->helper('SafeQueryHelper')
またはthe configをロードすることを忘れないでください。
update
とdelete
のようなレコードメソッドの場合は、try .. catch
にラップする必要があります。
データベースに関連するロジックがモデルに集中していない場合...実際には何も変わりませんが、その意味では、MVC
パターンの本質的な原則に違反する設計が不適切なアプリケーションがあることを意味します。リファクタリングを開始します。
最後に考えられる解決策は、Doctrineのコアクラス(具体的にはDoctrine_Connection
)をハックして、実際の処理に対応する行をtry ... catch
にすることです。しかし、それは悪い考えです、私は本当にそれをしません。
少し更新:すべてのDoctrineのエンティティオブジェクトとしてDoctine_Record
のsubclaesesがyoumay save
を包むための方法でSafeQueryHelper
を拡張され、delete
など:SafeQueryHelper::SafeSave($entity)
- 1. マルチティアで例外を処理する最善の方法
- 2. 例外をデバッグする最善の方法
- 3. 例外フォームをキャッチする方法ObjectDataSource.Updata()
- 4. UrlFetchApp.fetch例外をキャッチする方法
- 5. 構文例外をキャッチする方法
- 6. PDO例外質問 - キャッチする方法
- 7. キャッチされた例外をキャッチする方法
- 8. CodeIgniterからDjangoにAPIを移動する最善の方法
- 9. ファイルパスが長すぎる例外を解決する最善の方法
- 10. DoctrineをCodeIgniter 3にインストールする方法
- 11. タスクの配列の例外をキャッチする方法
- 12. 春の重複カラム値の例外をキャッチする方法
- 13. 最善の方法は、外部
- 14. 内部キャッチでキャッチされた例外をネストされたtryキャッチの外部キャッチに渡す方法
- 15. WebServiceからすべての例外をキャッチする方法は?
- 16. iPhoneアプリですべての例外をキャッチする方法
- 17. タスクで例外をキャッチする最も良い方法は何ですか?
- 18. iOS +未処理の例外をキャッチする方法
- 19. Zend Frameworkで私自身のモデル例外をキャッチする方法
- 20. LinkMovementMethodの使用中に例外(ActivityNotFoundException)をキャッチする方法
- 21. Cで未処理の例外をキャッチする方法は?
- 22. プライベートメンバーのサブクラスオブジェクトから例外をキャッチする方法は?
- 23. Pythonの - キャッチ例外
- 24. codeigniterの例外ライブラリでCIのintanceを取得する方法
- 25. CodeIgniterでURLルーティングの例外を処理する方法
- 26. XML例外キャッチ
- 27. キャッチ例外:
- 28. キャッチ(例外)とキャッチ(例外ex)の違い
- 29. UIView以外のUIViewControllerを変更する最善の方法
- 30. nullポインタの例外をキャッチするのが良い方法ではない場合、例外をキャッチするのは良い方法ですか?
ていない場合は、それらの2と
$entity->save()
を置き換えるより、どの他のオプションがあなたの頭に浮かんでいますか?あなたはすでにこれらのいずれかを試しましたか? 'index.php'では何が悪いですか? – hakre