Maison  >  Article  >  développement back-end  >  Exemples de PHP conforme aux spécifications de programmation PSR

Exemples de PHP conforme aux spécifications de programmation PSR

墨辰丷
墨辰丷original
2018-05-29 11:16:441389parcourir

De bonnes habitudes d'écriture de code peuvent rendre les gens heureux. L'article suivant partagera avec vous un exemple de code PHP conforme aux normes de programmation PSR. Les amis dans le besoin peuvent s'y référer.

Avant-propos

Quant aux normes de développement, on peut dire que les styles ont toujours été très différents. Chaque entreprise a sa propre manière de faire. jouer, et les gens sont plus nombreux. C'est un jeu personnel. À l'heure actuelle, plusieurs de nos frameworks nationaux les plus connus (Yii, Laravel) prennent en charge Composer et ont rejoint PHP-FIG (groupe de programmes-cadres php).

Le chargement automatique de Composer prend en charge les spécifications PSR-0 et PSR-4 spécifiées par PHP-FIG pour implémenter le mécanisme de chargement automatique, et Composer recommande d'utiliser PSR-4

PHP-FIG

Il s'agit d'une organisation bénévole et informelle, mais à en juger par l'impact actuel sur nous, elle est peut-être passée par défaut à une seule. La confiance du public l'organisation a en effet formulé beaucoup de très bons standards

Actuellement, selon le site officiel, il y en a certains qui ont été adoptés par vote (http://www.php-fig.org/psr /) 7 grandes spécifications

  1. Spécification de chargement automatique PSR-0 (officiellement abandonnée, principalement parce qu'il n'y avait pas d'espace de noms avant php5.3)

  2. Spécification de codage PSR-1

  3. Recommandation de style de codage PSR-2

  4. Interface de journal PSR-3

  5. Spécification de chargement automatique améliorée PSR-4 (recommandation officielle, la spécification est plus concise et claire)

  6. Interface de cache PSR-6

  7. Interface de messages HTTP PSR-7

Instance

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

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

modèle de conception php, un espace de noms, classe de chargement automatique, spécification de codage PSR-0

Spécification PSR de la spécification PHP

Explication détaillée de la spécification PHP orientée objet PSR-0

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn