メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
apricot:core:completion文書の過去の版を表示しています。
Apricot コアの完成
— y2sunlight 2020-05-05
関連記事
- Apricot コア
- Apricot コアの完成
ここまでで一通りコアのクラス群を作成し終わったので最後に index.php と Applicationクラス を修正してコアの完成形を作ります。尚、コアにはこの他に、ミドルウェアとアクションインターセプターの機能もありますが、それは「コアの拡張」で行います。
index.php
セッション開始のコードを加えてindex.phpを完成させます。
/apricot/public
- index.php
<?php //------------------------------------------------------------------- // オートローダーの登録 //------------------------------------------------------------------- require dirname(__DIR__).'/vendor/autoload.php'; //------------------------------------------------------------------- // パスの設定 //------------------------------------------------------------------- $project_path = dirname(__DIR__); $public_path = __DIR__; //------------------------------------------------------------------- // アプリケーション初期化 //------------------------------------------------------------------- $application = new Core\Application($project_path, $public_path); // セッション開始 Core\Session::start(); // アプリケーションセットアップ $application->setup(require_once config_dir('app.php')); //------------------------------------------------------------------- // アクションの実行 //------------------------------------------------------------------- $application->run(require_once config_dir('routes.php'));
Applicationクラス
ApplicationクラスのexecuteAction()メソッド内にレスポンスの処理を加えます。これで一応 Applicationクラス は完成です。
/apricot/core
- 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, string $actionName, array $params=[]) { // Create Controller $controller = "\\App\\Controllers\\{$controllerName}"; $instance = new $controller(); // Ecexute action $response = call_user_func_array(array($instance, $actionName), $params); if ($response instanceof \Core\Foundation\Response) { $response->commit(); } else { abort(500,'No Response'); } } }
apricot/core/completion.1588642973.txt.gz · 最終更新: 2020/05/05 10:42 by y2sunlight
コメント