symfonyコマンドラッパのあれこれ

以前、この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で実装する人がいないんでしょうね?本当に不思議です (笑  

Leave a Reply

Name (required)
Mail (will not be published) (required)

Your Comments:

Spam Protection by WP-SpamFree