アプリケーション

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

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

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

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

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

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

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

Application::bootstrap()

In addition to the config/bootstrap.php file which should be used to configure low-level concerns of your application, you can also use the Application::bootstrap() hook method to load/initialize plugins, and attach global event listeners:

// 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');
    }
}

Loading plugins and events in Application::bootstrap() makes コントローラーの統合テスト easier as events and routes will be re-processed on each test method.