Rumah pembangunan bahagian belakang tutorial php PHP编码风格规范详细介绍

PHP编码风格规范详细介绍

Aug 09, 2019 pm 04:44 PM
php

PHP编码风格规范详细介绍

  由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范,即使是使用灵活的脚本语言,也能写出非常漂亮工整的代码。首先我们来看一下已经通过的PSR规范,然后大致讲解一下PSR-1和PSR-2规范的一些具体要求。

已通过的PSR

PSR编号 名称 说明
1 基础编码规范 关于PHP标签和基本命名约定等基础的规范
2 编码风格规范 关于大括号的位置和参数列表等编码格式的规定
3 日志接口规范 关于日志级别以及记录日志的行为的规定
4 自动加载规范 关于类和命名空间的命名约定,以及它们与文件系统间映射的规定
6 缓存接口规范 关于缓存管理的规定,其中包括数据类型、缓存项的生存周期、错误处理等
7 HTTP消息接口规范 关于HTTP请求和响应的约定

PSR-1基础编码规范

1、开闭标签

  首先,PHP代码必须以

2、副作用

  PHP文件要么声明类、接口、函数等,要么执行逻辑操作(如读写文件或向浏览器发送输出),但不应该同时兼具两者。

3、命名

  类的命名必须遵守大写开头的驼峰式命名规范。换言之,类名应当以大写字母开头。属性的命名方式没有强制要求,但应该保持一致。方法名称必须符合小写开头的驼峰式命名规范。类常量中的所有字母必须大写,单词之间以下划线分隔。

PSR-2编码风格规范

1、PSR-1要求PHP代码以

  PSR-2规定,纯PHP文件不应该以一个?>标签结束,而应该以一个空白行结束。

2、namespace声明后应该插入一个空白行,use声明语句块后也应该要有一个空白行

  不要在同一行代码中进行多次use声明。

3、类的开始和结束

  class关键字、类名,以及extends和implements关键字必须在同一行中。如果一个类实现了多个接口,那么这些接口名可以在类声明的同一行中,也可以各占一行。如果选择将这些接口名放在多行中,那么第一个接口名必须自成一行,而不是跟在implements关键字后面。类的开始花括号({)应该写在函数声明后自成一行,结束花括号(})也应该写在类体后自成一行。也就是说,类声明看起来如下所示

class EarthGame extends Game implements
    Playable,    
    Savable
{ 
       //类体
}
Salin selepas log masuk

  也可以将类名与类声明放在同一行中。

class EarthGame extends Game implements Playble, Savable
{ 
    //类体
 }
Salin selepas log masuk

4、属性声明

  每个属性都必须有访问修饰符(public、private或protected)。不可以使用关键字var声明属性。PSR-1中已经涵盖了属性名的规范:可以使用下划线、小写驼峰式命名或大写驼峰式命名方式,但应该保持一致。(个人推荐属性采用小写式驼峰)

5、方法的开始和结束

  所有方法必须具有访问修饰符(public、private或protected)。访问修饰符必须在abstract或final之后,static之前。具有默认值得方法参数应该放在参数列表的末尾。

  ●单行声明
    方法的开始花括号({)应该写在方法名后自成一行,结束花括号(})也应该写在方法体后自成一行(直接跟在方法代码之后)。方法参数列表不应该以空格开始或结束(即应该紧贴包裹着它们的圆括号)。对于每个参数,参数名(或默认值)后面应该有一个逗号,且逗号后面有一个空格。这听起来似乎有些复杂,如下所示:

final public static function generateTile(int $diamondCount, bool $polluted = false)
{
   //方法体
}
Salin selepas log masuk

  ●多行声明
    如果方法有很多参数,那么单行方法声明是不实际的。此时我们可以分割参数列表,以便将每个参数(包括类型、参数变量、默认值和逗号)单独放在缩进的一行中。这种情况下,结束圆括号应该放在参数列表后面一行中,并与方法声明的开始位置对齐。开始花括号({)应该在同一行的结束圆括号之后,以空格分隔。方法体应该从新的一行开始。同样,这听起来似乎很复杂,以下示例应该能帮助你理解这条规定。

public function __construct(
    int $size,
    string $name,
    bool $warparound = false,
    bool $aliens = false
) {
  //方法体
 }
Salin selepas log masuk

6、行与缩进

  代码应该使用4个空格符来缩进,而不是使用制表符。我们可以检查编辑器设置,将其设置为按下Tab键时使用4个空格而不是制表符。每行代码的长度不应该超过120个字符。

7、方法与函数调用

  方法名称和开始圆括号之间不能有空格。方法调用中的参数列表的规则与方法声明中的参数列表规则相同。换言之,对于单行调用,开始圆括号后或结束圆括号前不能有空格。每个参数之后应该紧跟一个逗号,下一个参数前应该有一个空格。如果需要使用多行代码进行方法调用,那么每个参数应该自成一行并缩进,而且结束圆括号也应该自成一行。

$earthGanme = new EarthGame( 
     5,  
     'earth',
      true,
      true
 );
$earthGame::generateTile(5, true);
Salin selepas log masuk

8、流程控制

  流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。

$title = [];
for ($x = 0; $x < $diamondCount; $x++) { 
   if ($polluted) {
        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));
    } else {
        $title[] = new DiamondDecorator(new Plains());
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci PHP编码风格规范详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Pembalakan CakePHP Pembalakan CakePHP Sep 10, 2024 pm 05:26 PM

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

See all articles