"recipe - CakePHP CLI Package Installer -"とは何だったのか #cakeadvent2012 Day5

さてCakePHP Advent Calendar 2012 5日目の記事です。

昨日は@yandoさんのコールバックはもう古い!CakePHPのEventを使おうです。

個人的にまだ謎の多いCakeEventですが、ちょっと使う気になりました。

ちなみに自分は、Nodeを使っているとon()とかemit()とか頭がこんがらがるようなレベルです。

今日はrecipeというCakePHP専用のパッケージインストーラを紹介したいと思います。

まず初めに言っておきたいことがあります。

今回紹介するrecipe.phpは、既に廃れることを約束されたライブラリです。いや、既にオワコンとなってしまいました。

なぜかというとPHPのパッケージ管理システムとして勢いのあるComposerのCakePHP用の導入エントリーが出たからです。

じゃあ、なぜ紹介をするのかというと

かつてrecipeというインストーラがあったということを知ってもらいたかった

ただそれだけです。Composerが使える人はComposerを使うべきです。

recipeとは何だったのか

CakePHPは既にメジャーバージョンは2になり、Plugin(ライブラリ)も非常に充実しています。

フルスタックのPHPフレームワークとはいえ、開発する際には「CakePHPを設置後、定番のPluginを配置していく」というのが常となっているのではないでしょうか。

自分の場合、特に活用するPlugin(ライブラリ)が多く、余裕で2ケタのPluginを配置します。最近話題となったこの記事でも7つのPluginが挙げられていますね。

そうすると毎回配置するのが面倒になってきます。

解法として、Plugin配置済みの環境を使いまわしてもいいですし、gitsubmoduleを活用してもいいかもしれません。

ただ自分は「お手軽に」「gitやsubversionに依存せず」ライブラリの設置をしたかったので

  • PHPファイル1つで
  • 実行したらCakePHPのいつもの対話シェルで

インストールできるものを作ってみた、というのがrecipeです。

recipeの使用方法

本当はいろいろ機能があって、カスタマイズなどもできるのですが、既にオワコンなので通常の使用方法だけ。

  • recipe.phpをダウンロード
  • CakePHPのプロジェクトルートディレクトリでphp recipe.php
  • 後はbakeと同じ対話式

簡単。PHPファイル1つというのも導入が楽でよいですし、CakePHP bakerにとって「bakeの対話シェルと一緒」というのも意外に安心できます。

さらに言うとPluginを1つ1つ設置することも、設定を書いて一括設置することも可能です。

デフォルトで設置できるライブラリは、ingredients.phpに書いているものだけですが、 独自に拡張も可能です。(自分はAuthor権限をフル活用して、普段使うPlugin(ライブラリ)は新しいもの以外は大抵直接書いてコミットしていますが)

こんなに便利なのに…

なのに…

のに…

というわけで

便利なのに、世に出るタイミングを逃したrecipeの紹介でした。自分はもう少しの間使っていこうと思います。

明日は「タコヤキさん」こと@tkykmwさんです。ちなみに「タコヤキさん」と勘違いしていたのは自分だけなので注意してください。

以上です。