以前、このblogでsymfonyコマンドラッパーを紹介しました。 ruby以外にもsh,pythonで同じ様な実装をされている方がいらっしゃいました のでここで紹介をさせていただきます。
ついでに、私の書いたruby版もこのコマンドもたまにアップグレードしていますので、こ の機会に最後に書かせていただきました。
pythonでの実装
symfony bookの日本訳ドキュメントで御世話になっているおやじ組 の方による、python実装です。かっこいい。
shでの実装
環境を選ばないshで実装した方もいました。素晴らしい。
ruby版の現在
私は、いま下のようなのを使っています。
sf.rbではなくて、symfonyという名前で使いたかったのでカレントディレクト
リに./symfonyコマンドが存在するかのチェックを入れています。
また、下の方にあるsymfony ctrlタスクは、init-controllerでフロントコントローラ
を作るときに、強制的に上書きする物です。お好みでどうぞ。
#!/usr/bin/env ruby # $Id: symfony,v 1.4 2006/12/16 13:13:04 tumf Exp tumf $ require "fileutils" arg = ARGV symfony = '/usr/bin/symfony' begin startdir = FileUtils.pwd raise "" if (arg[0] == 'new' || arg[0] == '-T') until File.file?("symfony") FileUtils.cd('..') raise "can't find symfony project directory" if FileUtils.pwd == "/" end symfony = "./symfony" if File.file?("config/config.php") rescue FileUtils.cd(startdir) end # add init-controller wrapper # e.g. sf ctrl frontend dev index false # sf ctrl app env [file [debug]] if arg[0] == 'ctrl' then # symfony init-controller frontend dev index true file = arg[1] + "_" + arg[2] + ".php" file = arg[3] + ".php" if arg[3] file = "web/" + file File.unlink(file) if File.file?(file) arg[0] = "init-controller" end cmd = symfony << " " << arg.join(" ") system(cmd)
ところで、なんでphpで実装する人がいないんでしょうね?本当に不思議です (笑
POSTED BY tumf ON 8 月 8th, 2007. PERMALINK

