Apricot ベースコントローラ

y2sunlight 2020-05-08

Apricot に戻る

関連記事

レスポンスクラスが実装できたので、次にコントローラのベースクラスを作成します。


BaseControllerクラス

コントローラのアクションメソッドはアプリケーションの中核です。アクションの周辺にはミドルウェアなどの様々な前後処理が行われるので、直接アクションを呼び出すことは止めて間接的に呼び出す事を考えます。

アクションの間接呼び出しを実装した全てのコントローラのベースとなるクラスを以下に示します。

/apricot/core/Foundation

BaseController.php
<?php
namespace Core\Foundation;
 
/**
 * Request Controller Class (Controller Base)
 */
class BaseController
{
    /**
     * Call real Action
     * @param string $actionName
     * @param array $params
     * @return \Core\Foundation\Response
     */
    protected function callAction($actionName, $params)
    {
        return call_user_func_array(array($this, $actionName), $params);
    }
 
    /**
     * Invoke Action
     * @param string $actionName
     * @param array $params
     * @return \Core\Foundation\Response
     */
    public function invokeAction($actionName, $params)
    {
        // Call Action
        return $this->callAction($actionName, $params);
    }
}