私の拡張機能を使用してJoomla2.5から3.0に移行すると、DBエラー処理の実行方法に苦労しています(GetErrorNumは非推奨であるため、Joomla!も参照してください。JDatabase:: getErrorNum()は非推奨です。代わりに例外処理を使用してください)。
上にリンクされた質問によると思われる方法は、コードごとに次のコードを追加することdb->query()
です。
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
私の意見では、これによりDBエラー処理が以前よりも厄介になります。これまでのところ、checkDBError()
DB呼び出しの後に関数を呼び出すだけで、ErrorNumを照会し、それに応じて発生する可能性のあるエラーを処理していました。
これは、DBクエリが実際にトリガーされた方法とは無関係でした。これを行うにはさまざまな方法があり、エラーの場合はさまざまな結果が得られ$db->loadResult()
ます。そのため、DBアクセスタイプごとに異なるチェックが行われます。null
$db->query()
false
これを処理する一般的な方法はありませんか?たとえば、DBの問題で例外をスローするようにJoomlaに指示する方法はありませんか?または、それを実現するためにDatabaseDriverの周りに独自のラッパーを作成する必要がありますか?それとも私は何か明らかなものを見逃しているのでしょうか?
または、今のところ非推奨の警告を無視して、getErrorNum()の使用を続行する必要がありますか?拡張機能を将来にわたって利用できるようにしたいのですが、厄介なエラー処理ロジックで拡張機能を乱雑にしたくありません。