読者です 読者をやめる 読者になる 読者になる

CakePHP CLI Package Installer 'recipe' を開発中

CakePHP

CakePHP勉強会 2012春 @東京が、定員を増やしては上限オーバー、定員を増やしては上限オーバーと何回も繰り返した結果、大変な人数になってきている。


はじめは40人程度じゃなかったっけ?


当日たまたま東京にいるので、気軽に参加表明したら「プラグインバトルロワイヤル」というガチンコなCakePHP Plugin発表セッションに参戦することに。


おそらく「おれのかんがえたさいきょうのぷらぐいん」の発表大会みたいなことなりそうなので、ある意味メタ的に、その「さいきょうのぷらぐいん」をインストール(設置)できるパッケージインストーラを作ってみた(開発中)。


recipe - CakePHP CLI Package Installer -


もともとRailsのBunderのもっと簡易的なものが欲しかったのと、社内で使っていた独自インストーラが1.3までしか対応していなかったので、改めて設計をし直している。まだ仕様は確定していない。と思う。

今のところの特徴としては

  1. 実行は1つphpファイルをダウンロードして実行するだけ(Pluginですらない)。そのくせ、CakePHPのShellクラスを利用するので見た目がbakerにも優しい。
  2. デフォルトのパッケージリストの他に、独自にパッケージリストを指定可能
  3. パッケージの一括インストールリストの指定も可能
  4. CakePHPのPluginに限らず、PHPライブラリを任意のディレクトリに設置可能
  5. GNUコマンドを使いまくっているのでLinuxのみ対応( Windows?なにそれ? )


2と3を指定するための設定ファイルを便宜上「レシピ」と呼んでいるのだけれども、
2と3のおかげで、「社内のクローズドな環境にあるPluginやライブラリを設置できたり」「いつも使うライブラリを一括インストールできる」レシピを作成できる。
また、レシピはリモートファイルを指定できるので、

php recipe.php -r https://raw.github.com/gist/1929041/536e6ac9735956d2f69af15e585be3a5907b22d0/myrecipe.php

なんてことも可能。そのうちCakePHPで作ったCMSみたいなシステムのアップデータみたいなものにも使えるようになるかもしれない。


まだ、実現したい機能を全て実装できていないので、まずは日々の業務に耐えられるように拡張していきたい。


何か良いアイデアがあれば教えてください。