CakePHP で bake する時のオプションで プラグインディレクトリにファイルを生成する方法ってないんでしょうかね?

調べても分からなかったんで bake コマンドをカスタマイズしようと思ったけどややこしそうだったんで、簡単な処理だけコンソールから行えるようにしたものを作って github にアップ。プラグインの作成を助けるための、Cakeコマンドとして動作するプラグインです。

https://github.com/Zuborawka/CopyToPluginShell

…ロクにテストしてない。シェルのテストって初めて書いたけど面倒臭いなぁ。中途半端なまま。無理やりテストケース作るためにプロパティ変更したりしたが、ちょっと気持ち悪い。それからファイル出力のテストってどうやるんだろう。単純にファイルの生成を確認したりするコードを書くんかな。面倒臭いな。

プラグインを試作するときにテスト用にMVCのファイルをひと通り用意したい時に、ひとまず普通にアプリ側にベイクして、そのファイルをプラグインディレクトリにちまちま移動して修正したりしてるのですが、毎回つまらない作業なのでせめて移動する手間だけでも省こうというのがこの趣旨です。

詳しい解説は README.md に書いておきました。

とりあえず Github にあげておきましたが、もっといい方法があれば削除してこのエントリを書きなおすかもしれません。

想定する流れはこんな具合です

  1. 「よーしプラグインを作ろう!」
  2. Console/cake bake plugin で、プラグインのディレクトリを作成
  3. 「プラグイン作成に必要なモデルやコントローラやビューが欲しいな」
  4. テーブル作成
  5. Console/cake bake all などで、プラグイン作成用のファイルを bake
  6. 「出来たファイルが沢山あるけどこれをプラグインに移動するの面倒臭い!」
  7. Console/cake CopyToPluginShell.CopyToPlugin (ここで登場)
  8. コピー元のモデル名や、コピー先のプラグイン名などを指定
  9. 実行するとさきほど bake したファイルがごっそり移動(またはコピー)される
  10. プラグイン用に baked ファイルを修正。← これは手作業です!

読み返してみると、「面倒くさい」という言葉が3回も使われている。あ、これで4回か。