ホームページ > バックエンド開発 > PHPチュートリアル > PSRプログラミング仕様に準拠したPHPの例

PSRプログラミング仕様に準拠したPHPの例

墨辰丷
リリース: 2023-03-28 10:36:01
オリジナル
1425 人が閲覧しました

良いコードを書く習慣は人々を幸せにします。次の記事では、PSR プログラミング標準に準拠した PHP のサンプル コードを紹介します。必要な方は参考にしてください。

はじめに

開発基準に関しては、常にスタイルが大きく異なっていると言えます。各企業には独自の遊び方があり、人々の間ではそれが個人的な遊びです。現在、いくつかの有名な国内フレームワーク (Yii、Laravel) がすでに Composer をサポートし、PHP-FIG (php フレームワーク プログラム グループ) に参加しています。

Composer の自動読み込みは、自動読み込みメカニズムを実装するために PHP-FIG で指定されている PSR-0 および PSR-4 仕様をサポートしており、Composer は PSR-4 の使用を推奨しています

PHP-FIG

This Itは任意の非公式組織ですが、現在の私たちへの影響から判断すると、公共信託組織として機能している可能性があり、実際に多くの非常に優れた規範を策定しています。公式 Web サイトからは、投票済みです (http://. www.php-fig.org/psr/) 7 つの主要な仕様が通過しました


PSR-0 自動ロード仕様 (php5.3 より前には名前空間が存在しなかったことが主な理由で正式に廃止されました)
  1. PSR-1コーディング仕様
  2. PSR-2コーディングスタイルの推奨
  3. PSR-3ログインターフェイス
  4. PSR-4の自動ローディング仕様の改良(公式推奨、仕様はより簡潔で明確です)
  5. PSR- 6 キャッシュインターフェース
  6. PSR-7 HTTPメッセージインターフェース


<?php
namespace Standard; // 顶部命名空间
// 空一行
use Test\TestClass;//use引入类

/**
 * 类描述
 *
 * 类名必须大写开头驼峰.
 */
abstract class StandardExample // {}必须换行
{
  /**
  * 常量描述.
  *
  * @var string
  */
 const THIS_IS_A_CONST = &#39;&#39;; // 常量全部大写下划线分割

 /**
  * 属性描述.
  *
  * @var string
  */
 public $nameTest = &#39;&#39;; // 属性名称建议开头小写驼峰
            // 成员属性必须添加public(不能省略), private, protected修饰符

 /**
  * 属性描述.
  *
  * @var string
  */
 private $_privateNameTest = &#39;&#39;; // 类私有成员属性,【个人建议】下划线小写开头驼峰

 /**
  * 构造函数.
  *
  * 构造函数描述
  *
  * @param string $value 形参名称/描述
  */
 public function __construct($value = &#39;&#39;)// 成员方法必须添加public(不能省略), private, protected修饰符
 {// {}必须换行

  $this->nameTest = new TestClass();

  // 链式操作
  $this->nameTest->functionOne()
          ->functionTwo()
          ->functionThree();

  // 一段代码逻辑执行完毕 换行
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
  */
 public function testFunction($value = &#39;&#39;)// 成员方法必须小写开头驼峰
 {
   // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 private function _privateTestFunction($value = &#39;&#39;)// 私有成员方法【个人建议】下划线小写开头驼峰
 {
   // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 public static function staticFunction($value = &#39;&#39;)// static位于修饰符之后
 {
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 abstract public function abstractFunction($value = &#39;&#39;); // abstract位于修饰符之前

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 final public function finalFunction($value = &#39;&#39;)// final位于修饰符之前
 {
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $valueOne 形参名称/描述
  * @param string $valueTwo 形参名称/描述
  * @param string $valueThree 形参名称/描述
  * @param string $valueFour 形参名称/描述
  * @param string $valueFive 形参名称/描述
  * @param string $valueSix 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 public function tooLangFunction(
  $valueOne  = &#39;&#39;, // 变量命名可小写开头驼峰或者下划线命名,个人那习惯,据说下划线可读性好
  $valueTwo  = &#39;&#39;,
  $valueThree = &#39;&#39;,
  $valueFour = &#39;&#39;,
  $valueFive = &#39;&#39;,
  $valueSix  = &#39;&#39;)// 参数过多换行
 {
  if ($valueOne === $valueTwo) {// 控制结构=>后加空格,同{一行,(右边和)左边不加空格
   // code...
  }

  switch ($valueThree) {
   case &#39;value&#39;:
    // code...
    break;

   default:
    // code...
    break;
  }

  do {
   // code...
  } while ($valueFour <= 10);

  while ($valueFive <= 10) {
   // code...
  }

  for ($i=0; $i < $valueSix; $i++) { 
   // code...
  }
 }
}
ログイン後にコピー

上記はこの記事の全内容です。皆様のお役に立てれば幸いです。助けてくれました。

関連する推奨事項:

php 設計パターン 1 - 名前空間、自動読み込みクラス、PSR-0 コーディング仕様


PHP 仕様 PSR 仕様


PHP オブジェクト指向 PSR-0 仕様 詳細説明


以上がPSRプログラミング仕様に準拠したPHPの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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