skillup

技術ブログ

Database PHP

cakeでのトランザクション、コミット、ロールバック

投稿日:

cakePHP(2.X系)でのトランザクション、コミット、ロールバックについて。

cakePHPでトランザクションを書ける場合、Model内に

と書くことが一般的です。
http://book.cakephp.org/2.0/ja/models/transactions.htmlより引用。

ただし、ある程度の規模のWebアプリではトランザクションをスタートしてからコミットするまでに複数のモデルの処理を行うことが一般的です。

上記のソースではモデル内にトランザクション関連の処理を書いておりますが、そうのような処理の場合はトランザクション自体もモデルではなくコントローラー内に書くことになるでしょう。

その場合、トランザクションを管理する独立したモデルを用意しておき、そこから処理をよんだ方がよいでしょう。

ソースを書こうと思いましたが、検索元のリンクのほうがはるかにわかりやすいためリスペクトも込めて、リンクを貼ります。

http://d.hatena.ne.jp/pospome/20140416/1397664261

その他、参考にしたリンクは下記です。

http://qiita.com/uedatakeshi/items/780189183eb3a61d5bdc

-Database, PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

cake3でのバッチスクリプト

以前、cakeでのバッチをこちらのエントリーで書きましたが、今回は3系でのバッチの書き方について。 といってもほとんど同じですが・・・ Contents1 ディレクトリ2 ソース ディレクトリ src …

no image

データベース設計のアンチパターン 重すぎるOLTP+Date型不統一+データ量想定が甘い

Contents1 重すぎるOLTP1.1 デメリット1.2 対策2 DATE型の型の不統一2.1 デメリット2.2 対策3 データ量の想定が甘い3.1 デメリット3.2 対策 重すぎるOLTP ※O …

no image

Cakeの共通処理

CakePHPだけに限りませんが、フレームワークの場合、オブジェクト指向の特徴を理解して、全ページに共通な処理などは個々のコントローラーに書くのではなく、もっと抽象度の高いクラスに書いたほうが保守性が …

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …

no image

PHPでのPDF出力 テーブル

PDFで何かを出力する場合、ほとんどが納品書や請求書などの帳票でしょう。 これらもfpdfで出力することができます。 Contents1 ソース2 サンプル3 参考リンク ソース [crayon-5c …