ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでのカスタム ルーティングの使用の概要
はじめに
私は個人的なテストサイトに似た Web サイトを PHP で作成していますが、その過程でデザインやプログラミングのあらゆるミスを犯しましたが、同時に多くのことを得ることができました。私はPHPとMySQLを学びに行きました。新しいテクノロジーや Web の実践方法を学ぶたびに、自分の Web サイトがそれから恩恵を受けるだろうと思います。ご想像のとおり、あまり読みにくいです。 Web サイトのテストでは、コードの可読性や保守性の点でパフォーマンスが低下することがよくあります。特に、必要な機能がいくつかあるという理由だけでプログラミング言語を学習する場合、私はそうやって PHP を学習してきました。
ASP.NET MVC について知って以来、この Web サイトでこの MVC パターンを実装する方法を考えてきました。私はこのコンセプト全体、特にルーティングが大好きです。しかし、この目的のために Web サイト全体の既存のフレームワークを再構築したくはありません。既存のコードのほとんどが私の制御や理解を超えた異物のようになってしまうのではないかと心配しています。ウェブサイトにはすでに WordPress ブログがあり、それを完全なサイトのように見せるためにテンプレートを変更するのは、巨大な壁に落書きをするようなものでした。
それでは?少し前に、私は日常業務のために REST API に関する知識を学びました。これを学ぶための最良の方法はありますか?私はこれから恩恵を受けるであろうウェブサイトを知っています。 PHP 環境での RESTful API の適用に関するインターネット上の記事をいくつか読んだ後、.htaccess ファイルについて知りました。 PHP でルーティングを構築する方法がわかったので、独自に設計した小さくて単純な MVC モデルをテスト サイトに実装できるかもしれません。
想像してみてください
PHP でカスタム ルーティングを構築する鍵は、.htaccess ファイルを追加することです。以下を参照してください
詳細な実装:
Web サイトのフォルダー ディレクトリに新しい「API」フォルダーを追加し、その中に新しい .htaccess ファイルを作成しました。内容は Corey Maynard によって書かれたテキストから参照されました。
リライトエンジンオン
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$index.php?request=$1 [QSA,NC,L]
簡単に言えば、この構成では、「www.yoursite.com/api/」で始まるリクエスト、または存在しないファイルまたはパスを指すリクエストはすべて、index.php ファイルにリダイレクトされます。 $1 変数値はリクエストの URL アドレスを表し、「request」変数名も理解しやすく、$_REQUEST['request'] コマンドを使用して簡単に取得できます。
さらに、index.php ファイルと .htaccess ファイルは同じアクセス レベルです。
問題が考えられますか?
実際には、指定されたモジュールをまだ有効にしていない可能性があります。
WampServer 環境では、対応するモジュールがローカル操作をサポートできるようにする必要があります。 1 つの方法は、トレイ アイコンをクリックして「Apache」ディレクトリに入り、「Apache モジュール」リストで rewrite_module を選択し、すべてのサービスを再起動することです。別の方法は、httpd.conf ファイルを編集し、次の設定のコメントを解除することです
#LoadModule rewrite_module modules/mod_rewrite.so
次にやろうと思っていることの 1 つは、サイトの責任者が何も変更していないことを確認できるように、サイトのセルフテスト ページをいくつか作成することです。これは偏執的でばかげているように聞こえるかもしれませんが、データベースからインポートされたデータを表示するには、「set names latin2;」構成を一時的に追加する必要があります。
上記の設定がサーバー上で有効になっていることを確認したい場合は、次のコードを使用できます:
echo in_array('mod_rewrite', apache_get_modules());
次は何ですか?
この時点で、私は自分の Web サイト用に新しい MVC フレームワーク を構築するための重要な知識を獲得しました。新しいフレームワークを使用した作業は、MVC パターンを適用する際に得られた広範な知識のおかげで、既存のソリューションを使用するよりもはるかに優れていました。すべてのコードは私自身の個人的な作業であるため、消耗品のコンポーネントはありません。
さあ、私のウェブサイト用の REST API を作成してください。これで、基本的にデータベース ロジックを Web インターフェイスから取り出すことができます。
役立つリンク
私がどのようにして解決策を見つけたのか知りたい場合は、私が知識を得た Web サイト http://coreymaynard.com/blog/creating-a-restful-api-with-php/
を参照してください。翻訳リンク: http://www.codeceo.com/article/custom-routing-in-php.html
英語原文: Custom routing in PHP