待望のSymfony 1.0 beta 1が発表されました。アナウンスには面白そうな新機能がたくさんありますが、symfonyコマンドラインインターフェイス機能の追加もその一つです。
1.0.0の安定板リリースが待ち遠しいのですが、最近はネタ切れで本ブログ更新をサボってお叱りをうけてしまいましたので、これからさらに利用頻度があがるであろうsymfonyコマンドに関する小ネタで繋ぎたいと思います。
Symfonyで開発していてsymfonyコマンドはとても便利で重宝します。ただ、実行する為にプロジェクトのトップディレクトリにカレントディレクトリを移動しなくてはならず、少しだけ不便を感じていました。そこで以下のようなRubyスクリプトをパスの通ったディレクトリにsfというファイル名で置いておきラッパーとして利用しています。
#!/usr/bin/env ruby #sf.rb -- a symfony command wrapper require "FileUtils" until File.file?("SYMFONY") FileUtils.cd('..') raise "can't find symfony project directory" if FileUtils.pwd == "/" end cmd = "symfony " << ARGV.join(" ") puts cmd system(cmd)
このスクリプトはsymfonyのプロジェクトディレクトリのトップにつくられるSYMFONYファイルを探して、見つかればそこにchange directoryします。その後sfに与えられた引数をsymfonyコマンドに引き渡します。 つまり、
tumf@localhost:~/work/myproj/apps/frontend/modules/user/templates $ sf cc #注:人間が入力するのは、【sf cc】の部分です。
とすれば、
cd ../../../../.. symfony cc
と同様の結果を得る事ができます。コマンド終了後はsf実行前にカレントディレクトリが戻りますので、sfコマンド以前の作業をそのまま続行する事ができます。

