ホームページ  >  記事  >  バックエンド開発  >  PHP 開発で従うべき仕様は何ですか?

PHP 開発で従うべき仕様は何ですか?

王林
王林オリジナル
2019-09-26 17:40:113198ブラウズ

PHP 開発で従うべき仕様は何ですか?

##1. PHP 関連の命名規則

1. メソッドの命名

#method 、クラスで定義された関数を指します。メソッドはキャメル ケースを使用して名前が付けられ、最初の文字は小文字であるか、アンダースコア「_」を使用します (例: getUserName()、_parseType())。通常、アンダースコアで始まるメソッドはプライベートです。メソッド;

2. 関数の名前付け

#Function は、パブリック ファイル内の関数など、クラス内で定義されていない関数を指します。関数の名前は、get_client_ip();


3 のように小文字とアンダースコアを使用して付けられます。変数の名前付け

変数は属性とも呼ばれます。属性はキャメル ケースを使用して名前が付けられ、tableName、_instance など、最初の文字は小文字またはアンダースコア「_」が使用されます。通常、アンダースコアで始まる属性はプライベート属性です。

4. 定数名前付け

定数は、HAS_ONE や MANY_TO_MANY のように、大文字とアンダースコアで名前が付けられます;

5. 設定パラメータ コマンド

設定パラメータHTML_CACHE_ON = 1;

2. コーディング スタイルの仕様

1. 複数行のスペースは、大文字とアンダースコアで名前が付けられます。禁止

#特別な必要がない限り、コード ファイル内で複数行のスペースを使用することは禁止されています。

2. インデント

コードには適切なインデントが必要です。そうしないと、メンテナンスが難しくなります。

3. ディレクトリ構造

一般的なフレームワークにはデフォルトのディレクトリ構造があり、特殊な場合を除いてディレクトリ構造の変更は許可されていません。デフォルトは MVC です。このアーキテクチャのディレクトリ構造により、ディレクトリ構造の変更によるメンテナンスの問題が回避されます。 Controller ファイルは Controller ディレクトリに、Model ファイルは Model ディレクトリに、View ファイルは View ディレクトリに配置されますが、ディレクトリの場所や名前は任意に変更しないでください。

3. セキュリティ

1. 入力ボックス

すべての最大値を設定してください入力ボックスの長さ、必須フィールドに必要な制限を加えてください。たとえば、口座番号 CHN00000001 は 11 桁しか入力できないため、最大入力長は 11 文字のみであり、required="required" 属性が追加されます。

2. テキスト エディタ

フロント ページではリッチ テキスト エディタを使用しないようにしてください。リッチ テキスト エディタではコードを入力できるため、セキュリティ リスクが大きくなります。 。これを使用する場合は、送信されたコンテンツを、たとえば htmlspecialchars() を使用してフィルタリングする必要があります。

3. バックグラウンドでパラメータを受け取る

PHP はフォーム取得 URL からパラメータを取得する際にフィールドの型を判断する必要があります。たとえば、数値を受け取るパラメータには他の文字を含めることはできず、数値のみを含めることができます。悪意のあるコードの挿入を防ぐために、受信した投稿を確認してパラメータを取得し、各パラメータの値を検証するパブリック関数を作成することをお勧めします。メッセージ内容などの長い内容を含む変数を受け取る場合は、特殊文字フィルタリングを実行する必要があります。たとえば、strip_tags()、htmlspecialchars()、htmlentities() などの関数は、ユーザーがクロスサイト スクリプティング攻撃のための悪意のあるコードを挿入するのを防ぐために機能します。

4. 権限制御

アクセスする前にログインが必要なページは、ロードする前にログインする必要があります。ログインがタイムアウトした場合は、再度ログインしてください。アクセス許可が必要なページと機能には、許可の制御と検出が必要です。

4. 同時実行性と大規模トラフィックの処理

1. 繰り返しの送信

ユーザーが次のような場合に送信を繰り返すのを防ぐため。フォームを送信するには、検証を送信するようにフォームを設定する必要があります。たとえば、モールが注文を送信する場合、ユーザーが繰り返し注文を送信できないようにする必要があります。 Thinkphp フレームワークで提供されるフォーム トークン機能を使用すると、繰り返し送信を防ぐことができます。ネイティブ PHP では、ページを開く前にトークンを生成し、セッションに保存して、そのトークンをページ フォーム フィールドに渡すこともできます。フォームが送信されると、トークンはバックグラウンドでまとめて送信されますので、受信時にトークンを検証し、検証後に保存されているセッションのトークンを破棄します。

2. セッション

SMS 認証、フォーム認証などのワンタイム認証セッションは、使用後に破棄する必要があります。ユーザーが登録中に SMS 検証コードのセッションが破棄されない場合、ユーザーは同じ SMS 検証コードを使用して複数のアカウントを登録できます。

3. 並行性

モールのフラッシュセール機能など、並行処理が頻繁に発生しますが、並行処理がうまくいかないと同じ商品が売れてしまうことがあります。複数のユーザーによって購入されました。

同時処理ソリューションでは、次のソリューションが検討できます。

(1) ロック テーブル操作。欠点は、同時実行数が比較的大きい場合に、システムのラグ。

(2) キュー

(3) 負荷分散

(4) データベースの読み取りと書き込みの分離

(5) Nginx を http サーバーとして使用

4. キャッシュ

#頻繁にアクセスする必要があるデータベース データの場合、キャッシュを使用してアクセス速度を向上させ、キャッシュ ファイルを読み取ることができます。データ通貨データベースから取得します。クエリははるかに高速です。主なキャッシュ テクノロジは次のとおりです:

(1) Thinkphp 独自の S() メソッド

(2) ファイルの読み取りと書き込み。このメソッドはデータを暗号化します。

(3) Memcached

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHP 開発で従うべき仕様は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。