Composer を使用して独自の PHP フレームワークを構築してルートを構築する、composer build_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:15:39
オリジナル
887 人が閲覧しました

Composer を使用して独自の PHP フレームワークを構築し、ルーティングを構築し、Composer をビルドします

前の記事では、空の Composer プロジェクトを作成しました。この記事では、ルーティングを構築する方法について説明します。

有名な CodeIgniter フレームワークは、多くの人にとって PHP 開発の入門フレームワークであり、私が Web サイトの構築方法をゼロから学び始めたフレームワークでもあります。 CI では多くのことを学びましたが、その中でも MVC の深い理解とフレームワークの性質の理解は私に最も大きな影響を与えました。フレームワークを利用して開発効率を向上させるという観点から見ると、フレームワークの本質はルーティングです。

まず、GitHub で検索してみましょう: ここをクリックして検索結果を表示します。

https://github.com/NoahBuscher/Macaw を推奨します。対応する Composer パッケージは、GitHub 上で名前を変更しているはずです。これにより、問題が発生する可能性があります。 Macaw パッケージのインストールを開始し、composer.json を変更しましょう:

リーリー

コンポーザーのアップデートを実行すると、次のディレクトリが表示されます。



この時点で、Macaw パッケージは正常にインストールされました。


以下は奇跡を目撃する瞬間です!私たちはMFFCに命を吹き込み、本当に運営していきます!


新しい MFFC/パブリック フォルダーを作成します。このフォルダーはユーザーに唯一表示される部分になります。フォルダー内に新しいindex.phpファイルを作成します:

リーリー

上段はComposerの自動読み込み機能の導入、下段はルーティング設定ファイルの読み込みを示しています。新しい MFFC/config フォルダーを作成し、その中に次の内容の新しい routs.php ファイルを作成します:

リーリー

Macaw のドキュメントは https://github.com/NoahBuscher/Macaw にあります。実際、ほとんどのフレームワークと同じで、「すべての非静的ファイルをポイントします。」 「index.php」へ。


次に、Apache または Nginx を使用して、特定のポートを MFFC/public ディレクトリに割り当てます。この手順では、Apache または Nginx を使用することを強くお勧めします。

PHP 組み込み HTTP サーバーを使用する場合:

リーリー

ルートを生成する Macaw::get('fuck' は、応答するには Macaw::get('/fuck' として記述する必要があります。)

現在のコードは、Apache + mod_php および Nginx + php-fpm を問題なく使用しています。

ローカルでポート 81 をバインドしました。http://127.0.0.1:81/fuck にアクセスすると、次のことがわかります:

ページが文字化けする場合は、エンコードをUTF-8に調整してください。上記のページが正常に表示されたら、ルーティング設定は成功です。おめでとうございます。

Macaw にはファイルが 1 つしかなく、空白行を削除するのに 100 行強しかかかりません。コードを通してそれがどのように動作するかを直接確認できます。以下で簡単に分析してみましょう:

1. Composer の自動ロードは、各 URL が MFFC/public/index.php をドライブした後、完全な名前空間クラス名からファイル名までの配列をメモリ内に維持します。そのため、コード内で特定のクラスを使用すると、クラスは自動的にロードされます。

2. ルーティング ファイルに Macaw クラスをロードしました:「use NoahBuscherMacawMacaw;」で、静的メソッド::get() を 2 回呼び出しました。このメソッドは MFFC/vendor/codingbean/macaw/Macaw によって使用されます。 .php の __callstatic() が引き継ぎます。

3. この関数は 2 つのパラメータ $method と $params を受け入れます。前者は特定の関数名であり、ここでは get であり、後者はこの呼び出しで渡されるパラメータ、つまり Macaw::get('fuck') です。 ,function( ){...}) を 2 つのパラメータで指定します。最初のパラメータは監視する URL 値で、2 番目のパラメータは PHP クロージャです。これはコールバックとして機能し、URL が正常に一致した後に実行することを表します。

4.__callstatic() は非常に単純なことを行います。ターゲット URL (つまり /fuck)、HTTP メソッド (つまり GET)、およびコールバック コードを 3 つの Macaw クラス $routes、$methods、$callbacks の静的メンバー変数にプッシュします。 (配列)。

5. ルーティング ファイルの最後の行にある Macaw::dispatch(); メソッドは、現在の URL が実際に処理される場所です。直接照合できる場合はコールバックが直接呼び出され、直接照合できない場合は通常のルールが照合に使用されます。

独自の PHP 開発環境を構築したいのですが、業界ではどのようなフレームワーク + テンプレート エンジンが一般的ですか?

mysql+php+apache、テンプレートはスマートで、シンプルで使いやすいです。


PHP はフレームワークのルーティングメカニズムをどのように学習しますか?

zend、symphony、または yii を使用したことがある場合は、ソース コードを学ぶことができます。
主に、MVC フレームワークの場合のように、擬似静的を通じて単一のエントリを実現します。 Apache の疑似静的解析を通じてすべてのリクエストを指定されたファイルに転送し、PHP の $_SERVER[] グローバル変数を使用してリクエストのパス文字列を取得し、それを解析して、指定されたクラスに割り当てて処理します。 、 それで。
最も簡単な方法は、.htaccess ファイルを作成することです。ファイルの内容が送信されます

ErrorDocument 500 'mod_rewrite を有効にする必要があります'

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} ! -d
RewriteRule ^(.*)$index.php

このファイルをルートディレクトリに置きます。このファイルの機能は明らかです。すべてのリクエスト パスをindex.phpに転送し、index.php内のリクエスト文字列を判断してルート解析関数にアクセスします。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/903482.html技術記事 Composer を使用して独自の PHP フレームワークを構築し、ルーティングを構築する 前回の記事では、空の Composer プロジェクトを作成しました。この記事では、ルーティングを構築する方法について説明します。 長年の評判...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート