Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele für PHP, das den PSR-Programmierspezifikationen entspricht

Beispiele für PHP, das den PSR-Programmierspezifikationen entspricht

墨辰丷
墨辰丷Original
2018-05-29 11:16:441403Durchsuche

Gute Code-Schreibgewohnheiten können Menschen glücklich machen. Der folgende Artikel zeigt Ihnen PHP-Beispielcode, der den PSR-Programmierstandards entspricht. Lassen Sie uns einen Blick darauf werfen.

Vorwort

Was die Entwicklungsstandards angeht, kann man sagen, dass die Stile schon immer sehr unterschiedlich waren Spielen, und die Leute sind mehr. Es ist ein persönliches Spiel. Derzeit haben mehrere unserer bekannteren inländischen Frameworks (Yii, Laravel) Composer bereits unterstützt und sind PHP-FIG (PHP-Framework-Programmgruppe) beigetreten.

Das automatische Laden von Composer unterstützt die von PHP-FIG angegebenen PSR-0- und PSR-4-Spezifikationen zur Implementierung des automatischen Lademechanismus, und Composer empfiehlt die Verwendung von PSR-4

PHP-FIG

Dies ist eine freiwillige und informelle Organisation, aber gemessen an den aktuellen Auswirkungen auf uns könnte es sein, dass sie standardmäßig auf eine öffentliche Stiftung zurückgegriffen hat Die Organisation hat in der Tat viele sehr gute Standards formuliert

Derzeit gibt es laut der offiziellen Website einige, die durch Abstimmung verabschiedet wurden (http://www.php-fig.org/psr /) 7 große Spezifikationen

  1. PSR-0-Spezifikation für automatisches Laden (offiziell aufgegeben, hauptsächlich weil es vor PHP5.3 keinen Namespace gab)

  2. PSR-1-Codierungsspezifikation

  3. PSR-2-Codierungsstilempfehlung

  4. PSR-3-Protokollschnittstelle

  5. PSR-4 verbesserte automatische Ladespezifikation (offizielle Empfehlung, die Spezifikation ist prägnanter und klarer)

  6. PSR-6-Cache-Schnittstelle

  7. PSR-7 HTTP-Nachrichtenschnittstelle

Instanz

<?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...
  }
 }
}

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.


Verwandte Empfehlungen:

PHP-Designmuster, ein Namespace, automatische Ladeklasse, PSR-0-Codierungsspezifikation

PSR-Spezifikation der PHP-Spezifikation

Detaillierte Erläuterung der objektorientierten PHP-PSR-0-Spezifikation

Das obige ist der detaillierte Inhalt vonBeispiele für PHP, das den PSR-Programmierspezifikationen entspricht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn