# 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: フロントコントローラのプラグイン・クラス名配列 このリソースは、各々のクラスを（コンストラクタ引数なしで）インスタンス化して、 それからフロントコントローラでインスタンスを登録します。 独自のスタック・インデックスでプラグインを登録したい場合は、 2つのキー class および stackIndex を持つ配列を与える必要があります。

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

- returnresponse: フロント・コントローラをディスパッチした後にレスポンス・オブジェクトを返すべきかどうか。 値は、ブーリアンでなければなりません。デフォルトで、これは無効です。

- dispatcher: allows overriding the default dispatcher. Has two subkeys, class (the classname of new dispatcher) and params, an array of parameters to pass to the dispatcher constructor.

  ## ディスパッチャーを上書き

              [production]
              resources.frontController.dispatcher.class = "My_Custom_Dispatcher"
              resources.frontController.dispatcher.params.foo = "bar"
              resources.frontController.dispatcher.params.baz = "grok"

認識されていないキーが与えられると、 `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

    ; 下記の代用です:
    ;Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
    resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"

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

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

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