ホームページ >開発ツール >composer >Composer を使用してルート読み込みを実装する方法を教えます

Composer を使用してルート読み込みを実装する方法を教えます

藏色散人
藏色散人転載
2020-07-10 14:10:063969ブラウズ

composer の次のチュートリアル コラムでは、composer を使用してルート ローディングを実装する方法を紹介します。

Composer を使用してルート読み込みを実装する方法を教えます

このチュートリアルのサンプル コードは https でご覧ください。 :/ /github.com/johnlui/My-First-Framework-based-on-Composer

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

https://github.com/NoahBuscher/Macaw を推奨します。対応する Composer パッケージは noahbuscher/macaw です。

インストールを開始して、composer.json を変更しましょう:
 "require": {
    "noahbuscher/macaw": "dev-master"
  },

composer install を実行し、成功したら次のディレクトリを取得します。

Composer を使用してルート読み込みを実装する方法を教えます # この時点で、Macaw パッケージは正常にインストールされました。

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

1: 新しい App/config フォルダーを作成し、その中に次の内容を含む新しい routs.php ファイルを作成します:


Composer を使用してルート読み込みを実装する方法を教えます2: エントリー ファイルにルートをロードします。 Index.php.php ファイル


Composer を使用してルート読み込みを実装する方法を教えますMacaw のドキュメントは https://github.com/NoahBuscher/Macaw にあります。HTTP サービス ソフトウェアの種類に応じて擬似静的を設定してください。実際、これはほとんどのフレームワークと同じです。「すべての非静的ファイルをindex.phpにポイントする」。

設定が成功したらドメイン名にアクセスします:


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

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

Composer の自動読み込みでは、各 URL が MFFC/public/index.php を駆動した後、完全な名前空間クラス名からファイル名までの配列がメモリ内に維持されます。コード内でクラスを使用すると、そのクラスが配置されているファイルが自動的にロードされます。
  1. ルーティング ファイルに Macaw クラスをロードしました: "use NoahBuscher\Macaw\Macaw;"、そして静的メソッド::get() を 2 回呼び出しました。このメソッドは存在しません。 MFFC/vendor/codingbean/macaw/Macaw.php の __callstatic() によって引き継がれます。
  2. この関数は 2 つのパラメータ method" role="presentation" style="position: relative;">params、前者は特定の関数名で、ここでは get、後者はこの呼び出しで渡されるパラメータ、つまり Macaw::get('fuck',function()) { …}) を 2 つのパラメータに含めます。最初のパラメータは監視する URL 値で、2 番目のパラメータは PHP クロージャです。これはコールバックとして機能し、URL が正常に一致した後に実行することを表します。

  3. __callstatic() 做的事情也很简单,分别将目标URL(即 /fuck)、HTTP方法(即 GET)和回调代码压入 routes" role="presentation" style="position: relative;">routesmethods 和 $callbacks 三个 Macaw 类的静态成员变量(数组)中。

  4. 路由文件最后一行的 Macaw::dispatch(); 方法才是真正处理当前 URL 的地方。能直接匹配到的会直接调用回调,不能直接匹配到的将利用正则进行匹配。

以上がComposer を使用してルート読み込みを実装する方法を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。