Composer を使用して独自の PHP フレームワークを構築してルートを構築する、composer build_PHP チュートリアル
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 行強しかかかりません。コードを通してそれがどのように動作するかを直接確認できます。以下で簡単に分析してみましょう:
2. ルーティング ファイルに Macaw クラスをロードしました:「use NoahBuscherMacawMacaw;」で、静的メソッド::get() を 2 回呼び出しました。このメソッドは MFFC/vendor/codingbean/macaw/Macaw によって使用されます。 .php の __callstatic() が引き継ぎます。
4.__callstatic() は非常に単純なことを行います。ターゲット URL (つまり /fuck)、HTTP メソッド (つまり GET)、およびコールバック コードを 3 つの Macaw クラス $routes、$methods、$callbacks の静的メンバー変数にプッシュします。 (配列)。
5. ルーティング ファイルの最後の行にある Macaw::dispatch(); メソッドは、現在の URL が実際に処理される場所です。直接照合できる場合はコールバックが直接呼び出され、直接照合できない場合は通常のルールが照合に使用されます。
独自の PHP 開発環境を構築したいのですが、業界ではどのようなフレームワーク + テンプレート エンジンが一般的ですか?
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内のリクエスト文字列を判断してルート解析関数にアクセスします。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









