PHP PSR-1 基本コード仕様 (中国語版)、
基本コード仕様
この仕様は、コードの基本要素に関連する標準を定めます。
共有された PHP コード間の高度な技術的相互運用性を確保するため。
キーワード「必須」、「禁止」、「必須」、
「するつもり」(「するものとする」)、「しない」(「しないものとする」)、「すべきである」(「すべきである」)、「すべきではない」(「すべきではない」)、
「RECOMMENDED」、「MAY」、および「OPTIONAL」の詳細な説明は、RFC 2119 にあります。
1.概要
-
PHP コード ファイルは必ず
<?php
或=
タグで始まる必要があります; -
PHP コード ファイル は でエンコードされている必要があります。
不带BOM的 UTF-8
PHP コードでは、 - はクラス、関数、定数などの宣言、または
を生成するその他の操作 (ファイル出力の生成や .ini 設定ファイルの変更など) のみを定義する必要があります。 2つのうちの1つ
名前空間とクラス从属效应
は PSR の自動ロード仕様 (PSR-0 または PSR-4 のいずれか) に準拠する必要があります。 -
クラスの命名
は、 uppercase; - で始まるキャメルケースの命名規則に従う必要があります
StudlyCaps
クラス内の定数の文字はすべて大文字にする必要があり、単語はアンダースコアで区切る必要があります -
メソッド名 は、小文字で始まる スタイルのキャメルケース命名規則に準拠する必要があります。
-
2.書類 2.1.PHPタグ
PHP コードではcamelCase
短い出力タグを使用する必要があります。
。
2.2. 文字エンコーディング
PHP コードは エンコードする必要があり、 のみエンコードできます。 <?php ?>
长标签 或 = ?>
2.3. 副次的な影響(副作用)
PHP ファイルでは、クラス、関数、定数などの新しい宣言と、依存関係の影響を生じないその他の操作のみを定義するか、依存関係の影響をもたらす論理操作のみを定義する必要がありますが、同時に両方あります。
論理演算を実行する際の関数や定数など。
「副次的影響」には、出力の生成、直接 、外部サービスへの接続、ini 設定の変更、エラーまたは例外のスロー、グローバル変数または静的変数の変更、ファイルの読み取りまたは書き込みなどが含まれますが、これらに限定されません。
不带BOM的UTF-8
以下は反例であり、宣言と従属効果を含むコードです:
以下は例であり、宣言のみを含み、依存関係の影響を生成しないコードです。 リーリー
3. 名前空間とクラス名前空間とクラスの命名はPSR-0に準拠する必要があります。 仕様によれば、各クラスは独立したファイルであり、名前空間には少なくとも 1 つのレベル (最上位の組織名 (ベンダー名)) があります。
クラスの名前は、大文字で始まるキャメルケースの命名規則 に従う必要があります。
公式の名前空間を使用する必要があります。 require
或 include
リーリー
5.2.x およびそれ以前のバージョンでは疑似名前空間記述方法を使用する必要があり、慣例として
などのトップレベルの組織名 (ベンダー名) をクラス接頭辞として使用します。リーリー
4. クラスの定数、プロパティ、メソッドここでの「クラス」とは、すべてのクラス、インターフェイス、再利用可能なコード ブロック (特性) を指します
4.1. 定数
StudlyCaps
クラス定数
大文字にする必要があり、単語はアンダースコアで区切られます。 次のコードを参照してください: リーリー
4.2. プロパティクラスの属性の命名は、大文字で始まるキャメルケース (
) に従うことができます。この仕様では必須ではありませんが、どの命名方法に従う場合でも、一定の範囲内で一貫している必要があります。このスコープは、チーム全体、パッケージ全体、クラス全体、またはメソッド全体にすることができます。
4.3. 方法Vendor_
は、小文字で始まるキャメルケースの
形式の命名規則に準拠する必要があります。
原文:PizzaLiu github

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 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はより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









