このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
apricot:core:completion [2020/05/05 10:29] y2sunlight [Apricot コアの完成] |
apricot:core:completion [2020/05/21 10:42] (現在) y2sunlight [Apricot コアの完成] |
||
---|---|---|---|
行 13: | 行 13: | ||
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
+ | * [[apricot: | ||
* Apricot コアの完成 | * Apricot コアの完成 | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot:app: | + | * [[apricot: |
ここまでで一通りコアのクラス群を作成し終わったので最後に index.php と Applicationクラス を修正してコアの完成形を作ります。尚、コアにはこの他に、ミドルウェアとアクションインターセプターの機能もありますが、それは「コアの拡張」で行います。 | ここまでで一通りコアのクラス群を作成し終わったので最後に index.php と Applicationクラス を修正してコアの完成形を作ります。尚、コアにはこの他に、ミドルウェアとアクションインターセプターの機能もありますが、それは「コアの拡張」で行います。 | ||
行 54: | 行 55: | ||
$application-> | $application-> | ||
</ | </ | ||
+ | |||
+ | \\ | ||
===== Applicationクラス ===== | ===== Applicationクラス ===== | ||
+ | |||
+ | ApplicationクラスのexecuteAction()メソッド内にレスポンスの処理を加えます。これで一応 Applicationクラス は完成です。 | ||
{{fa> | {{fa> | ||
<code php Application.php> | <code php Application.php> | ||
+ | <?php | ||
+ | namespace Core; | ||
+ | |||
+ | /** | ||
+ | * Application Class | ||
+ | */ | ||
+ | class Application | ||
+ | { | ||
+ | |||
+ | ... | ||
+ | |||
+ | /** | ||
+ | * Ecexute action | ||
+ | * @param string $controllerName | ||
+ | * @param string $actionName | ||
+ | * @param array $params | ||
+ | */ | ||
+ | private function executeAction(string $controllerName, | ||
+ | { | ||
+ | // Create Controller | ||
+ | $controller = " | ||
+ | $instance = new $controller(); | ||
+ | |||
+ | // Invoke action | ||
+ | $response = call_user_func_array(array($instance, | ||
+ | if ($response instanceof \Core\Foundation\Response) | ||
+ | { | ||
+ | $response-> | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | abort(500,' | ||
+ | } | ||
+ | } | ||
+ | } | ||
</ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== app.php ==== | ||
+ | |||
+ | アプリケーションの設定ファイル(app.php)を以下のように変更し、whoops、idiorm、BladeOneが使えるようにします。 | ||
+ | |||
+ | {{fa> | ||
+ | <code php app.php> | ||
+ | <?php | ||
+ | return | ||
+ | [ | ||
+ | ' | ||
+ | config_dir(' | ||
+ | config_dir(' | ||
+ | ], | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ]; | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== テスト実行 ===== | ||
+ | |||
+ | ここまでの実装で一度実行してみましょう。ブラウザ上で以下のURLにアクセスしてみて下さい。 | ||
+ | |||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | 次のように表示されます: | ||
+ | |||
+ | < | ||
+ | Hello, Apricot! | ||
+ | </ | ||
+ | |||
+ | また以下のように、ルーティング(routes.php)に存在しないURLを指定するとWoopsのエラー画面が表示されるはずです。 | ||
+ | |||
+ | < | ||
+ | http:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||