検索
ホームページバックエンド開発PHPチュートリアルPHP シングルエントリーモードの詳細については、PHP チュートリアルを参照してください。

PHP シングル エントリ モードは、一般的な大規模 Web アプリケーション開発モードであると言えます。たとえば、より人気のある PHP 開発フレームワークの一部 (zend、thinkphp、qeephp、cakephp など) はすべてシングル エントリを使用します。モード。この記事では、シングル エントリ モードとは何か、またシングル エントリ モードの長所と短所について調査します。

シングルエントランスとは何ですか?

単一の入り口とは何かを説明する前に、まず対応する複数の入り口について説明しましょう。マルチエントリとは、異なる php ファイルにアクセスして、対応する関数を実行することを意味します。たとえば、私たちが最初に PHP を学習し始めたとき、プロジェクトを実行するときは通常次のことを行いました:

index.php - ホームページ

list.php?page=5 - コンテンツリストページ

info.php?id=12 - コンテンツ詳細ページ

login.php - ユーザーログインページ

このプロジェクトでは、これは実際には複数の入り口です。

単一エントリ アプリケーションとは、1 つのファイルを使用してすべての HTTP リクエストを処理することを意味します。たとえば、コンテンツ リスト ページ、ユーザー ログイン ページ、またはコンテンツ詳細ページのいずれであっても、ファイルからindex.php ファイルにアクセスして処理されます。ブラウザ、ここにあります。index.php ファイルは、このアプリケーションの単一のエントリ ポイントです。

PHP は単一の入り口をどのように実装しますか?

一般的に、単一エントリのプログラムには、index.php にアクセスするときに特定のパラメーターが付属します。例: コンテンツリストページにアクセスするためにindex.php?action=listを定義でき、コンテンツ詳細ページにアクセスするためにindex.php?action=infoを定義できます。具体的な実装コードは次のとおりです:

リーリー

上記は最も単純な単一エントリ モードのプログラムを実装しています。もちろん、実際の単一エントリ モードはこれよりもはるかに複雑になります。ただし、各関数の処理コードを合理的に編成し、特定の手順に従う方法を知っていれば、この問題を簡単に解決できます。背景の例を以下に示します。

たとえば、これからニュース管理用のバックエンドを構築します。したがって、まず、アプリケーションの機能を適切に分解する必要があります。たとえば、バックグラウンドのニュース列には、「ニュースの追加」、「ニュースの編集」、「ニュースの削除」などの複数の機能が含まれる場合があります。現時点では、この論理的に関連する機能のセットを「ニュース管理」モジュールと呼ばれる機能モジュールに組み合わせることができます。

上記の方法に従ってアプリケーションの機能を分類すると、複数の機能モジュールが得られ、各モジュールは複数の関数で構成されます (実際、単一エントリのアプリケーションでなくても、関数の分類は必要なステップです)。

関数を整理した後、各関数のコードを格納する方法を決定する必要があります。ここでは 2 つの方法をお勧めします:

1. 各機能モジュールにはサブディレクトリがあり、そのディレクトリ内の各ファイルが機能の実装コードになります。

この方法の利点は、各関数のコードが互いに分離されているため、複数人での共同作業に非常に便利であることです。欠点は、各関数間でコードとデータを共有するのがあまり便利ではないことです。例えば、ニュース管理モジュールのすべての機能には「ニュースコラムレコードの取得」という機能が必要なので、この複数の独立したファイルの編成方法を使用すると、「ニュースコラムレコードの取得」を別ファイルに記述してIncludeするしかありません。この機能を必要とするファイル。

2. 各モジュールには 1 つのファイルがあり、モジュール内の各関数は関数またはクラス メソッドとして記述されます。

メリットは言うまでもなく、コードとデータを共有するのに非常に便利です。欠点は、複数の人が同時に変更を行うと競合が発生しやすいことです。ただし、バージョン管理ソフトウェアや差分比較、マージ ツールを使用すると、競合は簡単に解決できます。

単一エントリーの申請と複数のエントリーの利点は何ですか?

シングルエントリーアプリケーションのすべての http リクエストは、index.php を通じて受信され、関数コードに転送されるため、実際の作業の多くは、index.php で行うことができます (すべてのページが同じ作業を行う必要があります)。たとえば、一元的なセキュリティ チェック、アクセス統計などを実行します。それが単一のエントリではない場合、開発者は各ファイルの先頭にセキュリティ チェック コードを忘れずに追加する必要があります。もちろん、複数エントリのセキュリティと言うかもしれません。チェックを別のファイルに書き込んでインクルードすることができます。しかし、実際には、比較的大規模なアプリケーション プロジェクトの場合、ヘッダー内の複数のインクルードを数十のファイルで一貫性を保つことは心配する必要はありません。

セキュリティチェックと同様。ポータルでは、URL パラメータと投稿に対する必要な検査と特殊文字フィルタリング、ログ記録、アクセス統計、および一元的に処理できるその他のタスクを実行することもできます。これらのタスクがindex.phpに集中しているため、他の機能コードを保守する困難が軽減されることがわかります。

シングルエントリーアプリのデメリット?

すべてのものには両面があり、単一エントリーのアプリケーションも例外ではありません。すべての http リクエストは、index.php にアクセスするため、プログラムの URL はそれほど美しくなく、特に検索エンジンにとってフレンドリーではありません。たとえば、次の URL:

http://www.phpernote.com/index.php?controller=posts&action=index

この種の URL は覚えにくいため、検索エンジンは通常の URL として認識しないことはわかっています。もちろん、これは次の URL と比較されます。

http://www.phpernote.com/index.php/posts/index/

しかし、これは大きな問題ではありません。URL の書き換えや PATHINFO などを使用することで簡単に解決できます。

OK、シングル エントリ モードについて書いたのはここまでです。もちろん、シングル エントリ モードを深く理解したい場合は、シングル エントリ モードを使用して小さなアプリケーションを作成してみるのが最善の方法です。それの。

興味がありそうな記事

    smarty テンプレートでの php 関数の使用と、smarty テンプレートの 1 つの変数で複数の関数を使用する方法
  • php で配列の最初と最後の要素を削除する方法
  • PHP の正確な丸め小数点 ビットと丸め方法
  • PHP は定数が定義されているかどうかをどのように判断しますか?
  • PHP が HTML の br 改行をテキスト入力の改行に変換する方法
  • Baidu インデックスのボリュームが継続的に減少している理由を分析し、 Baidu インデックスのボリュームを増やす方法
  • php は、ある場所の pm2.5 データ インターフェイス開発 (pm2.5 php API) を取得します
  • Mysql は、一重引用符で囲まれた文字列をクエリするときと一重引用符で囲まれた文字列を挿入するときの問題に注意する必要があります

http://www.bkjia.com/PHPjc/764156.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/764156.html技術記事 PHP シングル エントリ モードは、より人気のある PHP 開発フレームワーク、zend、thinkphp、qeephp、cakephp などの、人気のある大規模 Web アプリケーション開発モードであると言えます...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
どのデータをPHPセッションに保存できますか?どのデータをPHPセッションに保存できますか?May 02, 2025 am 12:17 AM

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

どのようにPHPセッションを開始しますか?どのようにPHPセッションを開始しますか?May 02, 2025 am 12:16 AM

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?May 02, 2025 am 12:15 AM

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?May 02, 2025 am 12:11 AM

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

PHPセッションはCookieとどのように異なりますか?PHPセッションはCookieとどのように異なりますか?May 02, 2025 am 12:03 AM

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

mPDF

mPDF

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター