【php100 厳選翻訳】ネームスペースは PHP 5.3 での最も重要な変更点であり、C# および Java 開発者はこの用語に非常に慣れており、最終的に PHP アプリケーションの構造をより適切に変更できるようになります。
なぜ名前空間が必要なのでしょうか?
PHP コードベースが大きくなるにつれて、以前に定義された関数やクラス名を変更するリスクが高まります。サードパーティのコンポーネントやプラグインが 2 つまたは 2 つある場合、問題はさらに深刻になります。複数のコード セットが「データベース」クラスと「ユーザー」クラスを実装している場合?
これまで、唯一の解決策は長いクラス/関数名を使用することです。たとえば、WordPress はすべてのクラス名と関数名の前に接頭辞「WP_」を使用します。Zend Framework は非常に説明的な命名規則を使用するため、クラス名は非常に冗長になります。
Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive
名前の競合の問題は名前空間を使用して解決でき、PHP 定数、クラス、関数を名前空間ライブラリに結合できます。
名前空間を定義するには?
デフォルトでは、PHP が名前空間をサポートする前と同様に、すべての定数、クラス、関数の名前はグローバル空間に配置されます。
PHP ファイルの先頭にあるキーワード namespace を使用して名前空間を定義できます。これは最初のコマンド (declare を除く) である必要があり、その前に PHP 以外のコード、HTML、スペースを含めることはできません。例:
<ol class="dp-c"> <li class="alt"><span><span></span><li class=""> <span></span><span class="comment"><font color="#008200">// define this code in the 'MyProject' namespace </font></span><span> </span> </li></span></li> <li class="alt"><span>namespace MyProject; </span></li> <li class=""><span> </span></li> <li class="alt"> <span></span><span class="comment"><font color="#008200">// ... code ... </font></span><span> </span> </li> </ol>
この行の下のコードは MyProject 名前空間に割り当てられています。実際にこれを行う場合、識別できるのは最後の名前空間だけですが、名前空間をネストしたり、複数の名前空間を定義したりすることはできません。同じファイル内に次のような異なる名前空間コードを定義します。
<ol class="dp-c"> <li class="alt"><span><span></span><li class=""><span>namespace MyProject1; </span></li> <li class="alt"> <span></span><span class="comment"><font color="#008200">// PHP code for the MyProject1 namespace </font></span><span> </span> </li></span></li> <li class=""><span> </span></li> <li class="alt"><span>namespace MyProject2; </span></li> <li class=""> <span></span><span class="comment"><font color="#008200">// PHP code for the MyProject2 namespace </font></span><span> </span> </li> <li class="alt"><span> </span></li> <li class=""> <span></span><span class="comment"><font color="#008200">// Alternative syntax </font></span><span> </span> </li> <li class="alt"><span>namespace MyProject3 { </span></li> <li class=""> <span> </span><span class="comment"><font color="#008200">// PHP code for the MyProject3 namespace </font></span><span> </span> </li> <li class="alt"><span>} </span></li> <li class=""><span>?> </span></li> </ol>
これを行うことは可能ですが、混乱を避けるために、各ファイルに 1 つの名前空間のみを定義することをお勧めします。
サブネームスペース
PHP では、次のように、サブネームスペースをバックスラッシュ文字 () で区切って階層型ネームスペースを定義できます。
電話する名前空間コードlib1.php ファイルでは、AppLib1 名前空間を使用して、次のような定数、関数、クラスを定義します。
lib1.php<ol class="dp-xml">
<li class="alt"><span><span class="tag"><strong><font color="#006699"></font></strong></span><span> ?php </span></span></li>
<li class=""><span>// application library 1 </span></li>
<li class="alt"><span>namespace AppLib1; </span></li>
<li class=""><span> </span></li>
<li class="alt">
<span>const </span><span class="attribute"><font color="#ff0000">MYCONST</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'AppLib1MYCONST'</font></span><span>; </span>
</li>
<li class=""><span> </span></li>
<li class="alt"><span>function MyFunction() { </span></li>
<li class=""><span> return __FUNCTION__; </span></li>
<li class="alt"><span>} </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>class MyClass { </span></li>
<li class=""><span> static function WhoAmI() { </span></li>
<li class="alt"><span> return __METHOD__; </span></li>
<li class=""><span> } </span></li>
<li class="alt"><span>} </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>
これで、別の PHP で使用できるようになります。このコードは次のようなものです:
myapp.php
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><strong><font color="#006699"></font></strong></span><span> ?php </span></span></li> <li class=""><span>header('Content-type: text/plain'); </span></li> <li class="alt"><span>require_once('lib1.php'); </span></li> <li class=""><span> </span></li> <li class="alt"><span>echo AppLib1MYCONST . "n"; </span></li> <li class=""><span>echo AppLib1MyFunction() . "n"; </span></li> <li class="alt"><span>echo AppLib1MyClass::WhoAmI() . "n"; </span></li> <li class=""> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> </ol>
myapp.php には名前空間が定義されていないため、このコードはグローバル空間に存在します。これらは AppLib1 に存在するため、MYCONST、MyFunction、および MyClass への直接参照は失敗します。 lib1.php のコードを呼び出すには、AppLib1 名前空間の前にプレフィックスを追加して、完全修飾名を定義します。myapp.php をロードしたときの出力は次のとおりです。非常に長いので、App-Lib1-MyClass のような長い名前を定義すると、明らかな利点がいくつかあります。
原文:
How to Use PHP Namespaces, Part 1: The Basics著者:
Craig Buckler
- http://www.bkjia.com/PHPjc/446608.html
- www.bkjia.com
本当
http://www.bkjia.com/PHPjc/446608.html

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

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









