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を定義できます。具体的な実装コードは次のとおりです:
リーリー上記は最も単純な単一エントリ モードのプログラムを実装しています。もちろん、実際の単一エントリ モードはこれよりもはるかに複雑になります。ただし、各関数の処理コードを合理的に編成し、特定の手順に従う方法を知っていれば、この問題を簡単に解決できます。背景の例を以下に示します。
たとえば、これからニュース管理用のバックエンドを構築します。したがって、まず、アプリケーションの機能を適切に分解する必要があります。たとえば、バックグラウンドのニュース列には、「ニュースの追加」、「ニュースの編集」、「ニュースの削除」などの複数の機能が含まれる場合があります。現時点では、この論理的に関連する機能のセットを「ニュース管理」モジュールと呼ばれる機能モジュールに組み合わせることができます。
上記の方法に従ってアプリケーションの機能を分類すると、複数の機能モジュールが得られ、各モジュールは複数の関数で構成されます (実際、単一エントリのアプリケーションでなくても、関数の分類は必要なステップです)。
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 は、一重引用符で囲まれた文字列をクエリするときと一重引用符で囲まれた文字列を挿入するときの問題に注意する必要があります

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

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

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

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

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

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

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

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


ホット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 など) をサポートします。

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

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

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

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

ホットトピック









