MixClipsは、裏のバッチ処理から表のサービス部分まで、すべてPHPで作られている。ただし、(当たり前だが)すべてが独自ロジックな訳はなく、PEARライブラリを活用している部分が多く、全部で6つのライブラリを使っている。
今回は、Mixclipsで使っているPEARライブラリの中でも、特に便利な3つのPEARライブラリをご紹介したい。
PEAR::DB_DataObject
使っている場所:DB接続部分全部
PEAR::DB_DataObjectはいわゆるO/Rマッパーであり、MYSQLであろうと、PostgresqlだろうとSQLを意識することなくPHPコーディングを行うことができる。データベースのテーブルをオブジェクトとして扱うことが可能なので、かなり簡単な直感的な実装が可能になる。それゆえ、DB接続系の記述が飛躍的に見やすくなり、実装も楽になる。ぜひおすすめ。
こんな感じでDB接続ができる。
URLSテーブルからnumが1以上のものを5件、日付順で取得する例
$popular=DB_DataObject::factory(“urls”);
$popular->whereAdd(‘num > 1’);
$popular->limit(5);
$popular->orderBy(‘date DESC’);
$popular->find();
PEAR::Calendar
使っている場所:トップページカレンダー表示
PEAR::Calenderによって、Mixclipsのカレンダー表示部分を作るのに大変楽をさせてもらっている。祝日があったり、土曜日があったり2月は28と29日の2種類あったりと大変めんどくさいカレンダーだが、こいつがあれば、速攻でカレンダーを作成可能。
※実装部分は長いので省略。ググればすぐ見つかります。
PEAR::Pager
使っている場所:新着ブックマークのページング機能
PEAR:Pagerはページング機能を設定だけで、やってのけてくれる便利なライブラリ。具体的なコードを見ていただければお分かりになると思いますが、たったこれだけで複雑なページングをやってくれます。
//ページング設定
$param = array(
‘mode’ => ‘Jumping’, // 表示タイプ
‘perPage’ => 10, // 一ページに表示する件数
‘delta’ => 10, // 一ページに表示するリンク数
‘totalItems’ => 100, // ページング対象データの総数
);
//ページング発行
$pager =& Pager::factory($param);
$link = $pager->getLinks();
どれもすごいことをしてくれるわけではありませんが、独自で作るのはめんどくさいなぁ。。的なライブラリばかり。PEARライブラリを使えば、さくっと簡単に実装できてしまうので、使わない手はありませんね。
参考リンク:
DB_DataObjectの使い方
Pear::Calendarで日本のカレンダーを作る
Pear:pagerの使い方