現在の位置: ホーム> 最新記事一覧> 簡単なPHPフレームワークをゼロから構築します

簡単なPHPフレームワークをゼロから構築します

M66 2025-06-29

簡単なPHPフレームワークをゼロから構築します

PHPは、Webアプリケーションの開発で広く使用されている人気のあるサーバー側のスクリプト言語です。自分でPHPフレームワークを構築することで、プロジェクトをより適切に管理し、コードの再利用性とスケーラビリティを向上させるのに役立ちます。この記事では、基本的なPHPフレームワークをゼロから構築し、関連するコードの例を提供する方法を示します。

フレームワークディレクトリ構造を作成します

まず、フレームワークファイルを保存するディレクトリを作成する必要があります。 「myframework」などの好みに従ってこのディレクトリに名前を付けることができます。このディレクトリでは、次の構造を作成します。

 myframework
├── app
│   ├── controllers
│   ├── models
│   └── views
├── config
├── public
├── vendor
└── index.php

この構造では、アプリディレクトリを使用して、コントローラー、モデル、ビューを含むアプリケーションのコードを保存します。構成ディレクトリは、構成ファイルに使用されます。パブリックディレクトリは、パブリックリソースファイル(CSSやJavaScriptなど)に使用されます。ベンダーディレクトリは、サードパーティライブラリに使用されます。 index.phpはフレームワークのエントリファイルです。

基本的なフレームワーククラスを作成します

次に、Frameworkの基本クラスとしてApp DirectoryにFramework.phpという名前のファイルを作成します。このクラスのタスクは、リクエスト、ルーティング、およびスケジューリングコントローラーを処理することです。

 class Framework {
    public function __construct() {
        // フレームワークを初期化します
    }

    public function run() {
        // リクエストとルーティングを処理します
        $route = $this->getRoute();
        $controller = $this->getController($route['controller']);
        $action = $route['action'];

        if (method_exists($controller, $action)) {
            $controller->$action();
        } else {
            // 存在しない方法
        }
    }

    private function getRoute() {
        // 解決リクエストURL,コントローラーとメソッドを取得します
        $route = $_SERVER['REQUEST_URI'];
        return ['controller' => $controller, 'action' => $action];
    }

    private function getController($controllerName) {
        // コントローラー名に基づいてコントローラーインスタンスを作成します
        $controllerClass = $controllerName . 'Controller';
        $controllerFile = 'app/controllers/' . $controllerClass . '.php';

        if (file_exists($controllerFile)) {
            require_once $controllerFile;
            return new $controllerClass;
        } else {
            // 存在しないコントローラーを処理します
        }
    }
}

上記のコードでは、 `__construct()`メソッドを使用してフレームワークを初期化し、 `run()`メソッドはリクエストを処理し、コントローラーメソッドをスケジュールします。 `getRoute()`は、要求されたURLを解析し、対応するコントローラーとメソッドを取得するために使用されますが、 `getController()`はコントローラー名に基づいてコントローラーインスタンスの作成を担当します。

コントローラーを作成します

次に、App/Controllers DirectoryにExamplecontroller.phpという名前のファイルをコントローラーの例として作成します。

 class ExampleController {
    public function index() {
        // ホームページのロジックを処理します
    }

    public function about() {
        // ページロジックについて処理します
    }

    // その他の方法...
}

このコードでは、Examplecontrollerというクラスを作成し、2つの方法を定義します `index()`と `about()`を例として定義します。

ビューを作成します

App/Viewsディレクトリで、index.phpという名前のファイルをサンプルビューとして作成します。このビューでは、HTMLとPHPを記述してページコンテンツを生成できます。

 <!DOCTYPE html>
<html>
<head>
    <title>My Framework</title>
</head>
<body>
    <h1>Welcome to my framework!</h1>
</body>
</html>

上記のコードは、フレームワークのフロントエンドページとして機能する単純なHTMLビューを示しています。

エントリファイルを作成します

フレームワークのルートディレクトリにindex.phpという名前のファイルを作成し、そこでフレームワーククラスを導入し、フレームワークオブジェクトを作成してフレームワークを実行します。

 require_once 'app/Framework.php';

$framework = new Framework();
$framework->run();

`http:// yourdomain.com`にアクセスすることにより、サンプルビューを表示できます。

要約します

上記の手順を通じて、Zeroから簡単なPHPフレームワークを正常に構築しました。これは、ニーズに応じてさらに拡張およびカスタマイズできる基本的なフレームワークです。独自のPHPフレームワークを構築することは、コードの保守性とスケーラビリティを改善するだけでなく、フレームワークの設計原則の理解を深めることもできます。この記事があなたを助けることを願っています!