Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

XAMPP アレンジ

IED

WSL2

道具箱

リポジトリ編

フレームワーク編

公開ソフトウェア

メタ
リンク


このページへのアクセス
今日: 3 / 昨日: 1
総計: 807

apricot:core:completion

文書の過去の版を表示しています。


Apricot コアの完成

y2sunlight 2020-05-05

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');
        }
    }
}


コメント

コメントを入力. Wiki文法が有効です:
 
apricot/core/completion.1588643021.txt.gz · 最終更新: 2020/05/05 10:43 by y2sunlight