cari
Rumahpembangunan bahagian belakangtutorial phpPHP PSR-1 基本代码规范(中文版),_PHP教程

PHP PSR-1 基本代码规范(中文版),_PHP教程

Jul 12, 2016 am 09:00 AM
phpversi Cinakodunsurasasdaripadaspesifikasi

PHP PSR-1 基本代码规范(中文版),

基本代码规范

本篇规范制定了代码基本元素的相关标准,
以确保共享的PHP代码间具有较高程度的技术互通性。

关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、
“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、
“推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 RFC 2119 。

1. 概览

  • PHP代码文件必须<?php = 标签开始;

  • PHP代码文件必须不带BOM的 UTF-8 编码;

  • PHP代码中应该只定义类、函数、常量等声明,或其他会产生 从属效应 的操作(如:生成文件输出以及修改.ini配置文件等),二者只能选其一;

  • 命名空间以及类必须符合 PSR 的自动加载规范:PSR-0 或 PSR-4 中的一个;

  • 类的命名必须遵循 StudlyCaps 大写开头的驼峰命名规范;

  • 类中的常量所有字母都必须大写,单词间用下划线分隔;

  • 方法名称必须符合 camelCase 式的小写开头驼峰命名规范。

2. 文件

2.1. PHP标签

PHP代码必须使用 <?php ?> 长标签 或 = ?> 短输出标签;
一定不可使用其它自定义标签。

2.2. 字符编码

PHP代码必须且只可使用不带BOM的UTF-8编码。

2.3. 从属效应(副作用)

一份PHP文件中应该要不就只定义新的声明,如类、函数或常量等不产生从属效应的操作,要不就只有会产生从属效应的逻辑操作,但不该同时具有两者。

“从属效应”(side effects)一词的意思是,仅仅通过包含文件,不直接声明类、
函数和常量等,而执行的逻辑操作。

“从属效应”包含却不仅限于:生成输出、直接的 requireinclude、连接外部服务、修改 ini 配置、抛出错误或异常、修改全局或静态变量、读或写文件等。

以下是一个反例,一份包含声明以及产生从属效应的代码:

<code class="php"><span class="hljs-preprocessor"><?php
<span class="hljs-comment">// 从属效应:修改 ini 配置
ini_set(<span class="hljs-string">'error_reporting', E_ALL);

<span class="hljs-comment">// 从属效应:引入文件
<span class="hljs-keyword">include <span class="hljs-string">"file.php";

<span class="hljs-comment">// 从属效应:生成输出
<span class="hljs-keyword">echo <span class="hljs-string">"<html>\n";

<span class="hljs-comment">// 声明函数
<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">foo<span class="hljs-params">()
{
    <span class="hljs-comment">// 函数主体部分
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

下面是一个范例,一份只包含声明不产生从属效应的代码:

<code class="php"><span class="hljs-preprocessor"><?php
<span class="hljs-comment">// 声明函数
<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">foo<span class="hljs-params">()
{
    <span class="hljs-comment">// 函数主体部分
}

<span class="hljs-comment">// 条件声明**不**属于从属效应
<span class="hljs-keyword">if (! function_exists(<span class="hljs-string">'bar')) {
    <span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">bar<span class="hljs-params">()
    {
        <span class="hljs-comment">// 函数主体部分
    }
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

3. 命名空间和类

命名空间以及类的命名必须遵循 PSR-0.

根据规范,每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。

类的命名必须 遵循 StudlyCaps 大写开头的驼峰命名规范。

PHP 5.3及以后版本的代码必须使用正式的命名空间。

例如:

<code class="php"><span class="hljs-preprocessor"><?php
<span class="hljs-comment">// PHP 5.3及以后版本的写法
<span class="hljs-keyword">namespace <span class="hljs-title">Vendor\<span class="hljs-title">Model;

<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Foo
{
}
</span></span></span></span></span></span></span></span></code>

5.2.x及之前的版本应该使用伪命名空间的写法,约定俗成使用顶级的组织名称(vendor name)如 Vendor_ 为类前缀。

<code class="php"><span class="hljs-preprocessor"><?php
<span class="hljs-comment">// 5.2.x及之前版本的写法
<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Vendor_Model_Foo
{
}
</span></span></span></span></span></code>

4. 类的常量、属性和方法

此处的“类”指代所有的类、接口以及可复用代码块(traits)

4.1. 常量

类的常量中所有字母都必须大写,词间以下划线分隔。
参照以下代码:

<code class="php"><span class="hljs-preprocessor"><?php
<span class="hljs-keyword">namespace <span class="hljs-title">Vendor\<span class="hljs-title">Model;

<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Foo
{
    <span class="hljs-keyword">const VERSION = <span class="hljs-string">'1.0';
    <span class="hljs-keyword">const DATE_APPROVED = <span class="hljs-string">'2012-06-01';
}
</span></span></span></span></span></span></span></span></span></span></span></code>

4.2. 属性

类的属性命名可以遵循 大写开头的驼峰式 ($StudlyCaps)、小写开头的驼峰式 ($camelCase) 又或者是 下划线分隔式 ($under_score),本规范不做强制要求,但无论遵循哪种命名方式,都应该在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。

4.3. 方法

方法名称必须符合 camelCase() 式的小写开头驼峰命名规范。


因psr-0已废弃故没有转

原文:PizzaLiu github

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1093108.htmlTechArticlePHP PSR-1 基本代码规范(中文版), 基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通...
Kenyataan
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
PHP dalam Tindakan: Contoh dan aplikasi dunia nyataPHP dalam Tindakan: Contoh dan aplikasi dunia nyataApr 14, 2025 am 12:19 AM

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

PHP: Membuat kandungan web interaktif dengan mudahPHP: Membuat kandungan web interaktif dengan mudahApr 14, 2025 am 12:15 AM

PHP menjadikannya mudah untuk membuat kandungan web interaktif. 1) Secara dinamik menjana kandungan dengan memasukkan HTML dan paparkannya dalam masa nyata berdasarkan input pengguna atau data pangkalan data. 2) Penyerahan borang proses dan menjana output dinamik untuk memastikan bahawa htmlspecialchars digunakan untuk mencegah XSS. 3) Gunakan MySQL untuk membuat sistem pendaftaran pengguna, dan gunakan kata laluan dan preprocessing untuk meningkatkan keselamatan. Menguasai teknik ini akan meningkatkan kecekapan pembangunan web.

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popularPHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popularApr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Relevannya PHP: Adakah ia masih hidup?Relevannya PHP: Adakah ia masih hidup?Apr 14, 2025 am 12:12 AM

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

Status Semasa PHP: Lihat trend pembangunan webStatus Semasa PHP: Lihat trend pembangunan webApr 13, 2025 am 12:20 AM

PHP tetap penting dalam pembangunan web moden, terutamanya dalam pengurusan kandungan dan platform e-dagang. 1) PHP mempunyai ekosistem yang kaya dan sokongan rangka kerja yang kuat, seperti Laravel dan Symfony. 2) Pengoptimuman prestasi boleh dicapai melalui OPCACHE dan NGINX. 3) Php8.0 memperkenalkan pengkompil JIT untuk meningkatkan prestasi. 4) Aplikasi awan asli dikerahkan melalui Docker dan Kubernet untuk meningkatkan fleksibiliti dan skalabiliti.

PHP vs Bahasa Lain: PerbandinganPHP vs Bahasa Lain: PerbandinganApr 13, 2025 am 12:19 AM

PHP sesuai untuk pembangunan web, terutamanya dalam pembangunan pesat dan memproses kandungan dinamik, tetapi tidak baik pada sains data dan aplikasi peringkat perusahaan. Berbanding dengan Python, PHP mempunyai lebih banyak kelebihan dalam pembangunan web, tetapi tidak sebaik python dalam bidang sains data; Berbanding dengan Java, PHP melakukan lebih buruk dalam aplikasi peringkat perusahaan, tetapi lebih fleksibel dalam pembangunan web; Berbanding dengan JavaScript, PHP lebih ringkas dalam pembangunan back-end, tetapi tidak sebaik JavaScript dalam pembangunan front-end.

PHP vs Python: Ciri dan Fungsi TerasPHP vs Python: Ciri dan Fungsi TerasApr 13, 2025 am 12:16 AM

PHP dan Python masing -masing mempunyai kelebihan sendiri dan sesuai untuk senario yang berbeza. 1.PHP sesuai untuk pembangunan web dan menyediakan pelayan web terbina dalam dan perpustakaan fungsi yang kaya. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan standard yang kuat. Apabila memilih, ia harus diputuskan berdasarkan keperluan projek.

PHP: Bahasa utama untuk pembangunan webPHP: Bahasa utama untuk pembangunan webApr 13, 2025 am 12:08 AM

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

See all articles

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 laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa