1.2LanguageEnglish概要アプリケーションのスクリプトの中には必ずしもどこにあるのか知らないままアクセスする必要があります。bashコマンドを使用しているのであれば、それらを見つけるためにfindが利用できます。symfonyでは、sfFinderクラスが利用できます。複雑な検索を行うことは新しい検索基準の問題であり、ファイルパスであれば結果はシンプルな配列です。sfFinderクラスsfFinderクラスはPerlのFile::Find::Ruleモジュールに基づいたファイルファインダクラスです。ファイルもしくはディレクトリ(もしくは両方)を見つけることが可能で、ユーザー定義のルールの設定で検索をフィルタリングできます。基本的な使い方は以下の通りです:typeクラスメソッドを呼び出してsfFinderオブジェクトを作成します。...}notesfFinderクラスはオートロードされるのでrequireする必要はありません。検索を洗練させるために使用されるルールはsfFinderオブジェクトのメソッドコールとして書かれます。すべてのメソッドは簡単なメソッドチェーンを実現するために現在のsfFinderオブジェクトを返します。ファイルパスの配列in()メソッドを除いて、すべてのルールは何度も起動することがあります。累積するルール(たとえばname)や破壊なルール(macdepth()など)があります。sfFinder::type('file')->name('/^Base.*$/');サイズによるフィルタ引数として比較を含む文字列を要求するsize()メソッドを呼び出すことでファイルサイズ上の検索をフィルタリングできます。検索の深さを制限するデフォルトでは、sfFinderオブジェクトによって行われる検索は再帰的ですべてのサブディレクトリを走査します。sfFinder::type('file')->maxdepth(1);もちろん、mindepthメソッドを呼び出すことで最小の深さを指定できます。デフォルトでは、最小の深さは0で最大の深さは無限です(もしくは無限に近い)。ディレクトリを除外する検索からディレクトリを除外したい場合、2つのメソッドが使えます:prune()メソッドは引数として与えられたパターンが見つかるツリー構造の部分で検索を停止させます。sfFinder::type('any')->prune('.svn');ファインダは.svnフォルダの奧には進みませんが、.svnフォルダ自身はまだ結果の部分です。discard()メソッドは結果から引数をマッチするファイルもしくはフォルダを除外しますが、ツリー構造の調査は止めません。ignore_version_control()を提供します。.svn、CVS、_darcs、.arch-params、.monotone、と.bzrのようなディレクトリとファイルをすべて取り除きます。検索の起点in()メソッドはsfFinderがファイルもしくはディレクトリを探さなければならない場所を指定するために使用されます。$finder->in('../projects/myproject');相対パスを返すデフォルトでは、in()メソッドによって返されるパスは絶対パスです。