# Zend_Application_Resource_Frontcontroller

おそらく、あなたが`Zend_Application`でロードする 最も一般的なリソースはフロントコントローラ・リソースです。 そして、それは`Zend_Controller_Front`を構成する能力を提供します。 このリソースは、 任意のフロントコントローラ・パラメータを設定したり、初期化するプラグインを指定したり、 そのほかにも能力を提供します。

一旦初期化されると、 リソースはブートストラップの`$frontController`プロパティを `Zend_Controller_Front`インスタンスに割り当てます。

利用できる構成キーは以下を含みます。大文字と小文字の区別をしません:

- controllerDirectory: コントローラ・ディレクトリを単独で指定している文字列値か、 またはモジュールからコントローラ・ディレクトリへの連想配列。

- moduleControllerDirectoryName: コントローラを含むモジュールの配下でサブディレクトリを示す文字列値

- moduleDirectory: モジュールが見つかるかもしれないディレクトリ

- defaultControllerName: デフォルト・コントローラの基底名。（通常は "index"）

- defaultAction: デフォルト・アクションの基底名。（通常は "index"）

- defaultModule: デフォルト・モジュールの基底名。（通常は "default"）

- baseUrl: アプリケーションに対して明示された基底URL （通常は自動検出）

- plugins: フロントコントローラのプラグイン・クラス名配列 このリソースは、各々のクラスを（コンストラクタ引数なしで）インスタンス化して、 それからフロントコントローラでインスタンスを登録します。 If you want to register a plugin with a particular stack index, you need to provide an array with two keys class and stackIndex.

- params: フロントコントローラに登録する連想配列

- returnresponse: whether or not to return the response object after dispatching the front controller. Value should be a boolean; by default, this is disabled.

認識されていないキーが与えられると、 `setParam()`に渡すことで、 フロントコントローラ・パラメータとして登録されます。

## フロントコントローラ・リソース構成サンプル

下記は、フロントコントローラ・リソースを設定する方法を示すINIスニペット・サンプルです。

    [production]
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.moduleControllerDirectoryName = "actions"
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.frontController.defaultControllerName = "site"
    resources.frontController.defaultAction = "home"
    resources.frontController.defaultModule = "static"
    resources.frontController.baseUrl = "/subdir"
    resources.frontController.plugins.foo = "My_Plugin_Foo"
    resources.frontController.plugins.bar = "My_Plugin_Bar"
    resources.frontController.plugins.baz.class = "My_Plugin_Baz"
    resources.frontController.plugins.baz.stackIndex = 123
    resources.frontController.returnresponse = 1
    resources.frontController.env = APPLICATION_ENV

## ブートストラップでフロントコントローラを取得

一旦フロントコントローラ・リソースが初期化されたら、 ブートストラップの`$frontController`プロパティを通じて フロントコントローラ・インスタンスを取ってくることができます。

    $bootstrap->bootstrap('frontController');
    $front = $bootstrap->frontController;