この記事は、PHP Advent Calendar 2014 - Qiitaの記事です。 1年に1度くらい、「あー二相コミットしてーなー」って時、PHPエンジニアだとあるかもしれません。正直僕にはありません。 とはいえ、時々「二相コミット」って言葉聞きますが、どういうものかイマイチ分からないので、非常に上辺だけですが、実装をしてみました。 そもそも二相コミットとは? Two Phase commitでぐぐるといろいろ出てきます すごく単純にいうと複数にデータベースを分割している場合に通常のトランザクションでは保証できない部分を保証できる仕組みです。 通常の二相コミットを使わず複数にデータベースを分けている場合のトランザクションは 以下の様な感じになると思います。 $first = $doctrine->getConnection('first'); $second = $doctrine-