PHPコーディング標準
PHP コーディング標準
コードをより読みやすく、保守しやすくし、コメントの記述を減らすために、標準化された名前付けとコード記述を通じて「ドキュメントとしてのコード」を実現したいと考えています。 目的。 Yigao 電子商取引システムのすべての PHP ファイルは、ドキュメントで指定されているコーディング規約に従う必要があります。同時に、SVN のサーバー側で仕様チェックを追加しました。提出されたコード内に仕様に準拠していないコードがあった場合、SVN はエラー メッセージを返します。気をつけてください SVN エラー メッセージを読みます。メッセージには、仕様を満たしていない詳細なエラー ファイル、行番号、説明が含まれています。
サードパーティのクラス ライブラリについては、必要に応じてプロジェクト マネージャーに問い合わせてください。
エディタ設定
- コードのインデント: すべてのインデントでタブの代わりにスペースが使用され、各インデントには 4 つのスペースが含まれます。
- ファイル エンコーディング: すべての PHP ファイルは UTF-8 として保存されます (BOM なし ) 文字エンコーディング、ANSI は使用できません。
命名規則
変数の名前付け
変数名はキャメルケースで名前付けされ、最初の文字は小文字、後続の単語の最初の文字は大文字になります。例:
$currentUser は正しいですが、$currentuser
と $current_user
それは正しくありません。
$requestUrl は正しいですが、$requestURL
それは正しくありません。
名前は説明的かつ簡潔である必要があります。もちろん、変数名として長い文を使用することは望ましくありませんが、変数が何に使われるかを考えるよりも、もう少し多くの文字を入力する方が良いでしょう。
定数の名前付け
定数名は、ORDER_TYPE のように、すべて大文字とアンダースコア (_) で構成されます。
ループカウンター
単一文字の変数名が許可される唯一の状況は、ループ カウンタとして使用される場合です。この場合、外側のループのカウンターは常に次のようにする必要があります。 $i。このループ内にループがある場合、そのカウンターは $j になるはずです。 kドルなどループのカウンターが意味のある名前を持つ既存の変数である場合、この仕様は適用されません。
for ($i = 0; $i < $outerSize; $i++) { for ($j = 0; $j < $innerSize; $j++) { foo($i, $j); } }
関数名
関数にはわかりやすい名前を付ける必要があります。ここでは C でプログラミングしているわけではありませんし、「stristr()」のような関数を書きたくありません。上記と同様に、単語はキャメルケースを使用して区別されます。関数名のどこかに動詞を含めた方がよいでしょう。より適切な関数名は、printLoginStatus()、getUserData() などです。
関数パラメータ
パラメータは変数名と同じ規則に従います。 doStuff($a, $b, $c) のような大量の関数は必要ありません。ほとんどの場合、関数の宣言を見るだけで関数の使用方法がわかります。パラメータの数は 5 つのパラメータ以内で制御する必要があります。配列を使用して 5 つを超えるパラメータを渡すこともできます。
カテゴリ
- クラスの名前 : まず、意味のある英語の単語またはフレーズである必要があります。クラス名は大文字で始まり、各単語の最初の文字も大文字にする必要があります。
- クラスのメンバー変数 : メンバー変数の命名は、変数の命名規則と一致している必要があります。
- クラスのメンバーメソッド 注: メソッドの名前は関数の名前と一致している必要があります。 ご注意ください 注: プライベート メソッドの場合は、メソッド名がアンダースコアで始まる必要があります。
概要
ここでの基本的な哲学は、単に怠惰にするためにコードの明瞭さを犠牲にしないことです。ただし、このバランスをとるには、いくつかの常識を使用する必要があります。 たとえば、printLoginStatusForAGivenUser() は行き過ぎです。この関数の名前は printUserLoginStatus() です。 あるいは、単に printLoginStatus() を使用することもできます。
コードレイアウト
ファイルヘッダー
テンプレート ファイルとサードパーティの PHP プログラムを除き、すべての PHP ファイル ヘッダーには、ファイルの目的やその他の情報を説明する標準ファイル ヘッダーが含まれている必要があります。例:
<?php /** * 这里是该文件的描述,说明这个文件的作用 * * $Id$ * * @copyright Xingchangxinda Inc., all rights reserved. * @package Framework * @todo system entrance * @author Weber Liu */ ?>?
著作権およびその他のタグについては、PHP ドキュメントを参照してください。 の説明。
コメントの書き方
一般的なコメントの書き方に従って、コードセグメントのコメントは次の方法で記述する必要があります:
ブロックレベルのコメント:
この種のコメントは、以下の複数行の目的を説明するために使用されます。一般に、空白行は次のように記述されます。
/* 这里是注释的内容 */ /** * 如果注释的内容比较多 * 请用这种方式来写 */?
インラインコメント:
この種のコメントは、変更されたコードを説明するために使用されます。一般に、コメントとコードは次のように同じ行に置かれます。
$userInfo = $user->getInfo(); // 获得用户的详细资料?
中括弧の位置については多くの議論があります。実際、各ステートメントにはさまざまな理由がありますが、基本的に誰もが同意していることが 1 つあります。それは、
常に中括弧を使用するです。 、ステートメントがどんなに短くても、必ず中括弧を使用してください。例: ?
中括弧の位置について:/* 这些是对的 */ if (condition) { doStuff(); } while (condition) { doStuff(); } for ($i = 0; $i < size; $i++) { doStuff(); }
。例:
这是不用太费事就可以保持代码可读性的另一个简单,容易的步骤。
无论何时你写一个赋值,表达式,等等,始终在符号之间保留一个空格。基本上,把代码当作英语来写。在变量名和运算符之间插入空格。不要在起始括弧后或者终
止括弧前加空格。不要在逗号或者分号之前加空格。一些例子很好地展示了这一点。例如: 你知道 PHP 中所有运算符的详细的优先级吗?我不知道。不要猜。始终用括号强制一个表达式的优先级可以使优先级明显,这样你知道它会做些什么。例如: 当条件语句中的条件存在多个,并且有变量值的判断的时候,需要把变量的判断语句放在其他的条件语句之前。 虽然在 PHP 中else if 和 elseif 的作用基本上是一样的。但是为了代码的统一性(也有传言 else if 会出现不稳定的情况),我们要求将 elseif 之间不保留空格: 上面的代码中,我用到了 在这里我们不强行要求这种写法,但是还是强烈建议: 在写等于的逻辑判断时将常量放在等号的左侧
。 为了使代码看起来简短一点,对于下面的这种简单的if语句允许采用一种简写的方式:class MyClass {
public function foo() {
if (cond) {
doSomething();
}
}
}?
符号前后使用空格
/* 每一对给出了错误方式,紧跟正确方式。 */
$i=0;
$i = 0;
if($i<7) ...
if ($i < 7) ...
if ( ($i < 7)&&($j > 8) ) ...
if (($i < 7) && ($j > 8)) ...
do_stuff( $i, "foo", $b );
do_stuff($i, "foo", $b);
for($i=0; $i<$size; $i++) ...
for($i = 0; $i < $size; $i++) ...
$i=($j < $size)?0:1;
$i = ($j < $size) ? 0 : 1;?
运算符优先级
/* 结果是什么?谁知道? */
$bool = ($i < 7 && $j > 8 || $k == 4);
/* 现在你确定这里我在做什么了。 */
$bool = (($i < 7) && (($j < 8) || ($k == 4)))?
数据库命名规范
其他规范
if 以及else if的写法
/* 正确的写法 */
if (1 === $val && function_exists(‘ob_gzhandler’)) {
... ...
}
/* 错误的写法 */
if (function_exists(‘ob_gzhandler’) && 1 === $val) {
}
if (2 == $n) {
... ...
} elseif (1 == $n) {
... ...
}
1 === $n
这样的写法,而没有采用常见的 $n === 1
写法的,这么做目的是为了避免我们在写双等号时错误的写成了一个等号,而 PHP 并不会报错,这样会造成在调试过程中浪费更多的时间。if 语句的简写方式
// 通常的写法
if ($a == $b) {
$c = 'foo';
}
// 简写的方式
$a == $b && $c = 'foo';

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
