検索
ホームページバックエンド開発PHPチュートリアルPHP コーディング開発仕様の概要 (サンプル付き)

この記事は、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 または = タグの開始;


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 サイトの他の関連記事を参照してください。

声明
この記事は博客园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール