内容へ移動
Ground Sunlight
Windowsで作る - PHPプログラミングの開発環境
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
•
メインメニュー
•
WSL2 ディストリビューションの複製
•
Mroonga
apricot:core:completion
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Apricot コアの完成 ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-05// [[apricot:top|Apricot に戻る]] 関連記事 * [[apricot:configuration|Apricot プロジェクトの作成]] * [[apricot:public|Apricot 公開フォルダ]] * Apricot コア * [[apricot:core:top|Apricot コア作成の準備]] * [[apricot:core:application-class|Apricot アプリケーションクラス]] * [[apricot:core:basic-class|Apricot 各種基本コアクラス]] * [[apricot:core:request-class|Apricot リクエストクラス]] * [[apricot:core:response-class|Apricot レスポンスクラス]] * [[apricot:core:base-controller|Apricot ベースコントローラ]] * Apricot コアの完成 * [[apricot:app:top|Apricot アプリ]] * [[apricot:ext:middleware|Apricot 拡張]] ここまでで一通りコアのクラス群を作成し終わったので最後に index.php と Applicationクラス を修正してコアの完成形を作ります。尚、コアにはこの他に、ミドルウェアとアクションインターセプターの機能もありますが、それは「コアの拡張」で行います。 ---- ===== index.php ===== セッション開始のコードを加えてindex.phpを完成させます。 {{fa>folder-open-o}} ** /apricot/public ** <code php 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')); </code> \\ ===== Applicationクラス ===== ApplicationクラスのexecuteAction()メソッド内にレスポンスの処理を加えます。これで一応 Applicationクラス は完成です。 {{fa>folder-open-o}} ** /apricot/core ** <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, string $actionName, array $params=[]) { // Create Controller $controller = "\\App\\Controllers\\{$controllerName}"; $instance = new $controller(); // Invoke action $response = call_user_func_array(array($instance, 'invokeAction'), [$actionName, $params]); if ($response instanceof \Core\Foundation\Response) { $response->commit(); } else { abort(500,'No Response'); } } } </code> \\ ==== app.php ==== アプリケーションの設定ファイル(app.php)を以下のように変更し、whoops、idiorm、BladeOneが使えるようにします。 {{fa>folder-open-o}} ** /apricot/config** <code php app.php> <?php return [ 'setup' =>[ config_dir('setup/whoops.setup.php'), /* Error handler(whoops) */ config_dir('setup/bladeone.setup.php'), /* View template (BladeOne) */ ], 'middleware' =>[], 'auth' =>[], 'csrf' =>[], ]; </code> \\ ===== テスト実行 ===== ここまでの実装で一度実行してみましょう。ブラウザ上で以下のURLにアクセスしてみて下さい。 <code> http://localhost/ws2019/apricot/public/ </code> 次のように表示されます: <code> Hello, Apricot! </code> また以下のように、ルーティング(routes.php)に存在しないURLを指定するとWoopsのエラー画面が表示されるはずです。 <code> http://localhost/ws2019/apricot/public/home </code> \\
apricot/core/completion.txt
· 最終更新: 2020/05/21 10:42 by
y2sunlight
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ