Phalcon#基本機能#コントローラ

3881 ワード

PhalconではコントローラがControllerで終わるように統一され、方法はActionで終わる.例えば、TestController::indexActionでは、すべてのコントローラがPhalcon\Mvc\Controllerから継承されるべきである.
初期化コントローラPhalcon\Mvc\Controllerは初期化関数initializeを提供し、最初に実行され、__construct(ソースコードの__constructがfinal属性を定義している)の使用は推奨されません.initializeは、イベントbeforeExecuteRouteが正常に実行された後にのみ呼び出されます.
Phalcon\Mvc\Controllerクラスのソースコードを表示すると、onConstruct関数を実装して、コントローラオブジェクトの作成後に初期化ロジックを実行することもできます.
{"onConstruct"}();
        }    
    }
}
onConstruct関数によって初期化コントローラを実現する:

パラメータの取得
URLルーティングのパラメータは、メソッドから直接入力して取得できます.

ディスパッチでパラメータを取得するには、次の手順に従います.
dispatcher->getParam('param1');     //     param1
        $param2 = $this->dispatcher->getParam('param2');     //     param2
    }
}

Requestオブジェクトを要求してパラメータを取得するには、次の手順に従います.
request->getPost('name');     //   post  name
        $age = $this->request->getQuery('age');     //   get  age
    }
}

コントローラでDIに注入されたサービスを利用するPhalcon\Mvc\Controllerが継承するinjectableクラスには、DIを取得する方法がカプセル化されており、DIに注入された様々なサービスをコントローラで容易に取得することができる.
getDI()->get('service name');
        $this->di->get('service name'); //   
    }
}

イベントのバインド
コントローラは、dispatcherイベントのリスナーとして自動的に機能し、これらのイベントを使用してこれらの方法を実装すると、実行されるactionに対応するbefore/afterフック関数を実現することができる.
getActionName() == 'save') {
            // do something before save action ...
        }
    }
      
    public function afterExecuteRoute($dispatcher)
    {
        //    action    
    }
}

リクエストとレスポンス
要求および応答オブジェクトは、コントローラで直接取得できます.
request; //       
        $params = $request->getPost(); //   post    
           
        $response = $this->response; //       
        $response->setJsonContent(['a' => 11111, 'b' => 2222])->send(); //   json   
    }
}