PHPの色々なフレームワークでDatabase Driverのラッパーが量産されているのが不毛に思った。 ここに共通化されたインターフェイスがあればフレームワークの違いを気にせず色々できるのになと。
そこで、PSR-3のLoggerのように標準化できないのかなと思って調べてみると、DoctrineのDBALが目に付いた。
ソースを読んでみると、DBALのConnection
インターフェイスはPDO
のサブセットになっている。
そうすると、PDO
に対する実装であるPDOConnection
はConnection
に対して実装を宣言するだけで済むわけだ。
PDO
をインターフェイスとして定義することで、PDO
の機能をそのまま同じインターフェイスで使うことができるし、PDO
を使う時には不要な抽象化レイヤーを挟まないのでシンプルでいいなと。
PDO
は事実上の標準なので多くの場合これで必要十分だと思う。
しかしながら、DBALにはクエリビルダーなど不要な機能も含まれているしdoctrin/commonへの依存もある。Connection
部分だけ抜きだしたpackageがあればいいのだけど、今の所ないようだった。
ということでPDO
のサブセットとしてのインターフェイスだけを提供するcomposerのpackageを作りました。