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. 例外をキャッチして別の例外をスローする方法
- 4. 例外フォームをキャッチする方法ObjectDataSource.Updata()
- 5. 構文例外をキャッチする方法
- 6. GUIで例外をキャッチする方法
- 7. UrlFetchApp.fetch例外をキャッチする方法
- 8. FeignClient例外をキャッチする方法
- 9. モバイルCSSのメディアクエリをキャッチする最善の方法
- 10. PDO例外質問 - キャッチする方法
- 11. ゴリラマルチプレクサ、レスポンスコードをキャッチする最善の方法
- 12. キャッチされた例外をキャッチする方法
- 13. ファイルパスが長すぎる例外を解決する最善の方法
- 14. CodeIgniterからDjangoにAPIを移動する最善の方法
- 15. 例外java - springをスローして管理する最善の方法は?
- 16. DoctrineをCodeIgniter 3にインストールする方法
- 17. 最善の方法は、外部
- 18. Webpack +リアクタのダイナミックルーティング - require.ensureでロードの例外をキャッチする方法
- 19. カサブランカの複数のタスクから例外をキャッチする方法
- 20. 春の重複カラム値の例外をキャッチする方法
- 21. タスクの配列の例外をキャッチする方法
- 22. 内部キャッチでキャッチされた例外をネストされたtryキャッチの外部キャッチに渡す方法
- 23. WebServiceからすべての例外をキャッチする方法は?
- 24. iPhoneアプリですべての例外をキャッチする方法
- 25. タスクで例外をキャッチする最も良い方法は何ですか?
- 26. 約束の中でコールバックでキャッチされない例外をキャッチする方法
- 27. LinkMovementMethodの使用中に例外(ActivityNotFoundException)をキャッチする方法
- 28. プライベートメンバーのサブクラスオブジェクトから例外をキャッチする方法は?
- 29. MongoClientインスタンスの作成時に例外をキャッチする方法
- 30. 他のクラスから例外をキャッチする方法は?
ていない場合は、それらの2と
$entity->save()
を置き換えるより、どの他のオプションがあなたの頭に浮かんでいますか?あなたはすでにこれらのいずれかを試しましたか? 'index.php'では何が悪いですか? – hakre