このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
|
apricot:core:completion [2020/05/05 10:28] y2sunlight 作成 |
apricot:core:completion [2020/05/21 10:42] (現在) y2sunlight [Apricot コアの完成] |
||
|---|---|---|---|
| 行 9: | 行 9: | ||
| * Apricot コア | * Apricot コア | ||
| * [[apricot: | * [[apricot: | ||
| - | * [[apricot: | + | * [[apricot: |
| * [[apricot: | * [[apricot: | ||
| * [[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:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | \\ | ||
| + | |||