直接ファイルが実行されたときだけ起動するスクリプト

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

Rubyのライブラリには、最後のサンプルコードのところに、以下のように書いてある場合があります。

if __FILE__ == $0
  sample = Sample.new
  ...
end

これ、どういう意味かというと、ライブラリの利用者がrequireで読み込んだ場合には、実行されない。
でも、直接に単体ファイルとして実行すれば、ライブラリのサンプルコードとして試すことができます。
これって、すごく便利な機能だなぁと思って、PHPでも同じようなことができないかと調べたところ・・・

ありました!

ベイエリア情報局: ライブラリが直接実行された場合はプログラムとして実行する

PHPでもやろうよ
こんな感じで簡単にできるよ。
argvの取得は$argvだけで。面倒だから。

if (isset($argv[0]) && __FILE__ === realpath($argv[0])) {
/* sample code */
}

ありがとうございました!助かりますね。
これで、コマンドラインからPHPのテストがやりやすくなります。
独自のクラスライブラリなんかを作って、テストコードを書くときは、上記のif文を使えば便利です。


日時: 2008年10月03日 11:49
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/442

この記事にトラックバックされる方は、参照先が分かるようにするために、「直接ファイルが実行されたときだけ起動するスクリプト」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - ウェブライフハック