アプリケーション

Application はあなたのアプリケーションの心臓部です。 アプリケーションがどのように構成され、何のプラグイン、ミドルウェア、コンソールコマンド、およびルートが含まれているかを制御します。

Application クラスは src/Application.php にあります。 デフォルトでは非常にスリムで、いくつかのデフォルトの ミドルウェア を定義しているだけです。 Application は、次のフックメソッドを定義できます。

  • bootstrap 設定ファイル を読み込み、 定数やグローバル関数を定義するために使用されます。デフォルトでは、 config/bootstrap.php を 含みます。これは、あなたのアプリケーションが使用する プラグイン を読み込むのに理想的な場所です。

  • routes ルート を読み込むために使用されます。 デフォルトでは、 config/routes.php を含みます。

  • middleware アプリケーションに ミドルウェア を追加するために使用されます。

  • console アプリケーションに コンソールコマンド を追加するために使用されます。 デフォルトでは、アプリケーションとすべてのプラグインのシェルとコマンドが自動的に検出されます。

  • events アプリケーションのイベントマネージャーに イベントリスナー を追加するために使用されます。

Application::bootstrap()

アプリケーションの低レベルな関心事を設定するために使用する config/bootstrap.php ファイルに加えて、 プラグインのロードや初期化、グローバルイベントリスナーの追加のために Application::bootstrap() フックメソッドが利用できます:

// in src/Application.php
namespace App;

use Cake\Http\BaseApplication;

class Application extends BaseApplication
{
    public function bootstrap()
    {
        // Call the parent to `require_once` config/bootstrap.php
        parent::bootstrap();

        // Load MyPlugin
        $this->addPlugin('MyPlugin');
    }
}

Application::bootstrap() でプラグインとイベントをロードすると、イベントとルートが各テストメソッドで再処理されるので、 コントローラーの統合テスト が簡単になります。