- 2010年8月31日 3:30 PM
- CakePHP

前回の”CakePHPプラグインのまとめ – 認証編“の続きです。
以下のページの”Searching and Pagination”と”File Uploading”の訳とメモを書いていきます。
検索とページネーション:
- CakeDC’s Search: 少しばかり高度だが、ページネーションにフィルタリングを掛ける確実な方法だ。CakePHPのエキスパート自身によって書かれているよ。恐らくもっとテストが必要だけどね ;)
- Jose Gonzalez’s Filter Plugin: これには私自身すごく助けられているが、君がモデルやそれに関連するモデルのデータを通してページネーションにフィルタリングをかけたい場合にだ。私は多くのリファクタリングをしたけど、まだまだ必要だよ。しかし、私が聞いたところによると結構プロダクションで使われているみたいで、少なくとも見た目上はうまく動いているようだね :)
- Neil Crooke’s Filter: このクソヤローは常に私のプラグインのアイディアを盗もうとしているんだ。まだこれは使ってないけどね。けどもしこれが彼の検索プラグインだとしたら、完全にやられたよ。あーぁ。
- Neil Crooke’s Searchable: 検索インデックスのレコードにJSONを使えるプラグインだ。これはちょっとすごくて、私はCakeのパッケージに含めていくつかのサイトで使ってる。確実に見ておくべきものだね。
- Kalt’s Search: 私が思うに、NeilはKaltからアイディアを盗んだんだ。多分ね。
- Matt Curry’s Pagination Recall: このドキュメントのないプラグインはセッションにページネーションされた現在のページを保存出来るんだ。これはコントローラのページネーション対象のアクションにリダイレクトされたときでさえ、使えるよ。
- Matt Curry’s Yahoo BOSS: これを使えば、君のアプリケーションの中にYahoo! Boss検索を実装出来るよ。
面倒な検索とページネーションの処理を一括して面倒を見てくれるプラグインのようです。READMEには複合検索のスニペットが載っていますが、このプラグインを使うことでページネーション周りをすっきりと書けています。
CakeDCの検索プラグインと比べるととてもシンプルにページネーションが書けそうです。機能自体もシンプルです。標準のページネーションのロジックをまとめておきたいときなどに使えそうです。検索フォームを作るヘルパーもついていますね。
これも検索フォーム表示用のヘルパーがついています。URLについた検索パラメータを自動で取得し、ページネーションのパラメータにセットしてくれるようです。複合条件に対応、多くのオペレーション(イコールや大なり小なりなど)に対応していると書いてあります。
READMEがないので詳細は不明ですが、検索インデックスを作るシェルや検索インデックスモデルのためのビヘイビアが格納されていました。ソースのクエリを見る限り、全文検索用のプラグインなのでしょうか?
複数モデルに対応したCakePHPのためのサイト検索プラグインと銘打ってあります。こちらもMySQLの全文検索用のプラグインですね。全文検索のモードもしっかり選べるようです。テーブルを1つ追加して、そこにモデル名、ID、検索インデックスを仕込み、検索に使うようです。
51行の短いコンポーネントですね。ページネーションのオプションをセッションに保存してくれるようです。
Yahoo! BOSSがわからなかったのでググってみました。
どうやら、Yahoo!からXMLやJSON形式で検索結果を得られるサービスのようです。
特定のサイトに限っても検索結果を得られる、1日の検索制限はなし、とあるので、なかなか便利そうなサービスですね。
bing移行後も継続しているようです。
File Uploading:
- Vinicius Mendes’ MeioUpload: 私もこのプラグインには貢献したよ。バージョニングはちょっとあれだけど、これは確実に便利なプラグインだ。
- Debuggable’s TransloadIt plugin: NodeJsベースのウェブサービスにファイルをアップロードするにはこのプラグインは最高だ。君のAjaxを通してエンコーディング、プロセッシングそしてストレージを提供してくれる。これはアツい。
- Michał Szajbe’s UploadPack: アップロードしたファイルを出力するためのヘルパーだ。こいつはその用途じゃ、最高のもんだ。私は今じゃ、MeioUploadさえ超えたと思って、去年一年の間に何らかの形で、この二つのコードに貢献、そしてメンテナになっているよ。
- Jose Gonzalez’s Upload: 私は私が貢献したMeioUploadとUploadPackをベースにアップロードプラグインを作ったんだ。私はまだこれを使ってないけど、だいたい44%、ユニットテストされている。一度100%になったら試してみて、また君に教えるよ ;)
- David Perrson’s Media: 全てのCakePHPアップロードプラグインの先祖だ。
君がもし、何かこのプラグインで必要以上のことをやりたいとしても、こいつはCakePHPプラグインとしてリリースされていないんだ。このプラグインで君がやりたいことが出来ないなら、こいつはCakePHPのプラグインじゃないね。ちょっと上級者向けのプラグインだ。けどがっかりしないでくれよ。
ファイルをモデルに格納するためのビヘイビアです。テーブルを使わない方式も対応しているようですね。このプラグインを入れれば、ファイルアップロード周りのコードをほとんど書かなくて良さそうです。
Transloaditというサービスを利用するためのプラグインのようです。Transloaditを調べてみましたが、これは便利なサービスですね。アップロード時のプログレスバー表示や動画の変換、動画や画像のメタデータの生成までやってくれます。詳細はトップページを見るとわかりますよ。
ファイルアップロード用のヘルパーとビヘイビアのセットですね。サムネイルの表示などもヘルパーで出来るようです。確かにMeioUploadよりも機能が充実していそうです。
これはファイルアップロード用のビヘイビアですね。インターフェースがしっかりしていて使いやすそうな印象を受けます。MeioUploadやUploadPackとどう違うかは使ったことがないのでわかりませんが…。
ここは訳がすごく微妙です。”CakePHPプラグインとしてリリースされてない”とあるのですが、どういうことでしょうか?内部がCakePHPのコードになっていない?カスタマイズしにくい、ってことかな。MASA-Pさんとcakephperさんにご指摘頂いて、上記の訳に直しました。うーむ、英語力が追いつきませんね。
Media Pluginに関してはECWorks BlogのMASA-Pさんの記事が参考になります。
普段、ページネーションは自前で、ファイルアップロードは使わないのですが、訳したことでとても興味が出てきました。
ファイルアップロードはTransloaditというサービスが気になります。
プラグインも用意されているので試しに使ってみようかな。トラフィック次第では動画共有サイトに使えそうですね。
検索に関してはYahoo! BOSSプラグインと全文検索のプラグインが気になりますね。
Yahoo! BOSSでの日本語検索はどの程度対応しているのでしょうか?bingになってどう変わったのか…。
そのうちこの2つのサービスを取り上げみましょうか。
次は”Optimization“と”Debugging“を訳しますよ。
[連載記事一覧]
- 認証編
- AuthComponentの代替えになるプラグインやfacebookと連携するプラグインが紹介されています。それに加え、使いにくいACLを使いやすくするツールも。個人的には一番、興味のある記事でした。
- 最適化/デバッグ編
- CakePHP 2に取り込まれるであろうプラグイン、そしてContainableBehaviorをさらに高機能にしたようなプラグインが紹介されています。DebugKitの使い勝手を向上するものもありますよ!
- ヘルパー編
- ブログを作るなら使いたいGravatarやGoogle APIをCakePHPのために取りまとめたプラグインが紹介されています。Google APIにCakePHPを対応させるプラグインは必見です。使った人がいたら、ぜひコメントください。
こちらもあわせてどうぞ
ちょっと一言
訳するのにたくさんスラングが出てくるので困りますね。そういうときは、"keyword + slang"で検索すると英英ですが、意味が出てきますよ。

