3

現在、現在のアプリケーションを Class::DBI から移行するために、DBIx::Class に関する調査を行っています。正直なところ、DBIx::Class については、結果クラスの構成に関しては少しがっかりしています。Class::DBI を使用すると、コード ジェネレーターなしで on 関数を呼び出すだけで、モデルのメタデータをセットアップできます。私の質問は . .. DBIX::Class でも同じことができますか? クライアント側のトリガーが DBIx::Class でサポートされていないようです。または、間違ったドキュメントを見ていませんか?

4

1 に答える 1

5

トリガーは、Result クラスで適切なメソッド (new/create/update/delete など) を再定義し、$self->next::method()コードの前または後にその中で ( を介して) 親を呼び出すことによって実装できます。確かに、Class::DBI の before/after トリガーと比べると少しぎこちないです。

メタデータについては、オブジェクトの一時的な列について話しているのですか? つまり、データベース行に格納されないデータです。これらは、CPAN の Class::Accessor::* モジュールの 1 つを使用して簡単に追加できます。

CDBI から DBIC に切り替える際に行う最も難しい変更の 1 つは、ResultSet の観点から考えることです。多くの場合、CDBI の Class メソッドを介して実装されていたものが ResultSet のメソッドになります。コードを大幅にリファクタリングする必要がある場合があります。必ずしも一方から他方への単純な変換ではありません。

于 2010-07-14T09:27:43.393 に答える