PHP コーディング開発仕様の概要 (サンプル付き)

不言
リリース: 2023-04-05 18:44:01
転載
2693 人が閲覧しました

この記事は、PHP コーディング開発仕様の概要 (サンプル付き) を紹介します。これは一定の参考価値があります。必要な友人が参照することができます。お役に立てば幸いです。

ここ数日、Alibaba Technology がリリースした Java 開発仕様セット「Alibaba Java Development Manual」を読んでいます。これには Alibaba の内部 Java 開発仕様と標準が含まれており、非常によく書かれています。この一連の Java 統一仕様は、業界コーディングの標準化レベルを向上させ、業界関係者が開発の品質と効率を向上させ、コードの保守コストを大幅に削減するのに役立ちます。

これを読んだ後、いくつかの PHP 開発仕様と標準を検索したところ、PSR 仕様が PHP 業界で一般的に使用されている開発標準のセットであることを知りました。私は自分がほとんど学んでおらず、標準的な規範を発見するのが遅かったことを嘆いています。

実は、初心者や数年の経験を持つ開発者にとって、これらの仕様をマスターする必要があり、多くの場合、共同開発においてこれらの仕様をしっかりと行うことで、開発の品質と効率を向上させることができます。 。

PSRとは何ですか?

PSR は PHP Standard Recommendations の略で、PHP FIG 組織によって開発された PHP 仕様は、PHP 開発の実践標準です。

PHP FIG は現在、6 セットの標準を採用することに投票しており、ほとんどの PHP フレームワークによってサポートおよび認識されています。

その中で、通過したものは次のとおりです:

  • PSR-1 基本コーディング仕様
  • PSR-2 コーディング スタイル仕様
  • PSR-3 ログインターフェース仕様
  • PSR-4 自動読み込み仕様
  • PSR-6キャッシュ インターフェイスの仕様
  • PSR-7 HTTP メッセージ インターフェイスの仕様
##*注: PSR-0 は非推奨になり、PSR-5 はまだドラフト中です。

ここでは、まず PSR-1 の基本的なコーディング仕様を紹介します

1. 概要

PHP コード ファイルは

PHP コード ファイルは BOM なしの UTF-8 でエンコードする必要があります;


PHP コードはクラスなどの宣言のみを定義する必要があります。関数、定数など、または副作用を引き起こすその他の操作 (ファイル出力の生成や .ini 構成ファイルの変更など) の場合は、2 つのうちの 1 つだけを選択できます。 # 名前空間とクラスは PSR の自動読み込み仕様に準拠する必要があります: [PSR-4]() のいずれか;


クラスの命名は、大文字で始まる StudlyCaps のキャメルケース命名規則に従う必要があります;


クラスの定数の文字はすべて大文字にする必要があり、単語の区切りにはアンダースコアを使用する必要があります;


メソッド名は、キャメルケース スタイルのキャメルケース命名規則に準拠する必要があります。小文字で。


2. ファイル

##2.1. PHP タグ

PHP コードでは 長いタグを使用する必要があります。または 短い出力タグ;

は他のカスタム タグを使用しないでください。

2.2. 文字エンコーディング

PHP コードでは、BOM のない UTF-8 エンコーディングのみを使用する必要があります。 (これは非常に重要です)

2.3. 副作用

PHP ファイルでは、クラス、関数、定数などの新しい宣言のみを定義する必要があります。副作用を引き起こす論理演算だけを記述することもできますが、両方を同時に行うことはできません。

「副作用」という用語は、クラス、関数、定数などを直接宣言せずに、ファイルをインクルードするだけで実行される論理演算を意味します。

「副作用」には以下が含まれますが、これらに限定されません:

出力の生成

    直接要求または含める
    外部サービスへの接続
##ini 構成の変更
  • ##エラーまたは例外のスロー
  • # #グローバル変数または静的変数の変更
  • ファイルの読み取りまたは書き込みなど。
    次は反例で、「関数」を含むファイルです。 「宣言」と「副作用」 コード:
  • <?php
    // 「副作用」:修改 ini 配置
    ini_set(&#39;error_reporting&#39;, E_ALL);
    // 「副作用」:引入文件
    include "file.php";
    // 「副作用」:生成输出
    echo "<html>\n";
    // 声明函数
    function foo()
    {
       // 函数主体部分
    }
    ログイン後にコピー
  • 次は例です。宣言のみを含み、「副作用」を生成しないコードです:
    <?php
    // 声明函数
    function foo()
    {
       // 函数主体部分
    }
    // 条件声明 **不** 属于「副作用」
    if (! function_exists(&#39;bar&#39;)) {
       function bar()
       {
           // 函数主体部分
       }
    }
    ログイン後にコピー
  • 3. 名前空間とクラス

名前空間とクラスの命名は、[PSR-4]() に従う必要があります。


仕様によれば、各クラスは独立したファイルであり、名前空間には少なくとも 1 つのレベル (最上位の組織名 (ベンダー名)) があります。

クラスの命名は、大文字で始まる StudlyCaps のキャメルケース命名規則に従う必要があります。 PHP 5.3 以降のバージョンのコードでは、正式な名前空間を使用する必要があります。 ######例えば:###

<?php
// PHP 5.3及以后版本的写法
namespace Vendor\Model;
class Foo
{
}
ログイン後にコピー

5.2.x 及之前的版本 应该 使用伪命名空间的写法,约定俗成使用顶级的组织名称(vendor name)如 Vendor_ 为类前缀。

<?php
// 5.2.x及之前版本的写法
class Vendor_Model_Foo
{
}
ログイン後にコピー

4. 类的常量、属性和方法

此处的「类」指代所有的类、接口以及可复用代码块(traits)。

4.1. 常量

类的常量中所有字母都 必须 大写,词间以下划线分隔。

参照以下代码:

<?php
namespace Vendor\Model;
class Foo
{
   const VERSION = &#39;1.0&#39;;
   const DATE_APPROVED = &#39;2012-06-01&#39;;
}
ログイン後にコピー

4.2. 属性

类的属性命名 可以 遵循:

  • 大写开头的驼峰式 ($StudlyCaps)
  • 小写开头的驼峰式 ($camelCase)
  • 下划线分隔式 ($under_score)

本规范不做强制要求,但无论遵循哪种命名方式,都 应该 在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。

4.3. 方法

方法名称 必须 符合 camelCase() 式的小写开头驼峰命名规范。

【相关推荐:PHP视频教程

以上がPHP コーディング開発仕様の概要 (サンプル付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート