Home > CakePHP | PHP > CakePHP DboSourceをPHP5らしく使う

CakePHP DboSourceをPHP5らしく使う

この記事の所要時間: 044

CakePHPではDBアクセスは通常Modelを介して行うので、直接DboSourceを利用する事は無さそうですが、SQL文を自分で構築する際など、意外と使う機会があります。

DboSourceは、通常以下のよう使用します。

<?php
// $hogeをエスケープ
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->value($hoge);
?>

もちろんこれでも問題無いのですが、やや冗長な感じもあります。そこでPHP5で以下のように書いてみました。

<?php
ConnectionManager::getDataSource($this->useDbConfig)->value($hoge);
?>

1文にまとまりました。ただ、まだ冗長なので、これをAppModelでまとめてみます。

<?php
class AppModel extends Model {
  public function getDbo() {
    return ConnectionManager::getDataSource($this->useDbConfig);
  }
}
?>

使う際はこうなります。

<?php
// Modelなら
$this->getDbo()->value($hoge);

// Controllerなら
$this->Foo->getDbo()->value($hoge);
?>

スッキリした書き方になりました;-)

そろそろPHP5も普及しつつあるので、CakePHPももっとPHP5らしい書き方に移行したいな、という話でした。

Pocket

follow us in feedly

トラックバック:1

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2008/04/cakephp_php5_dbosource.html/trackback
Listed below are links to weblogs that reference
CakePHP DboSourceをPHP5らしく使う from Shin x blog
pingback from (CakePHP 2.x) mysqldumpを使ってバックアップを作成する | 日々の覚書…日常のことも少しだけ 13-12-05 (木) 8:02

[…] ドされます。 本当はShell化して cronとかで自動バックアップ取ったりした方がいいかもしれないですが、 とりあえず、この方法を取ってみました。 (参考) CakePHP DboSourceをPHP5らしく使う […]

Home > CakePHP | PHP > CakePHP DboSourceをPHP5らしく使う

検索
フィード
メタ情報

Return to page top