0

0

了解 PSR - PHP 编码风格指南

霞舞

霞舞

发布时间:2024-10-22 17:50:15

|

732人浏览过

|

来源于dev.to

转载

了解 psr - php 编码风格指南

如果您使用 php 进行开发已有一段时间,您可能遇到过术语 psr-12。它是 php 社区中最广泛接受的编码标准之一,旨在确保不同项目之间 php 代码库的一致性。无论您是单独工作还是作为团队的一员,遵循 psr-12 都可以使您的代码更干净、更具可读性并且更易于维护。在本博客中,我们将详细介绍 psr-12 是什么、它为何重要以及如何将其应用到您的项目中。

目录

  1. 什么是 psr-12?
  2. 为什么 psr-12 很重要?
  3. psr-12 的主要规则
    • 文件结构
    • 命名空间和使用声明
    • 类和方法
    • 控制结构
    • 评论和文档
  4. 如何在 php 项目中应用 psr-12
  5. 帮助您遵循 psr-12 的工具
  6. 最后的想法

什么是 psr-12?

psr-12 是 php 编码风格指南,由 php-fig(框架互操作性小组)开发。它建立在之前的 psr-2 标准的基础上,提供了一组更新的规则,反映了现代 php 实践并提高了代码库之间的一致性。

将 psr-12 视为编写干净、可读且可维护的 php 代码的蓝图。通过遵循 psr-12,开发人员可以确保他们的代码遵循标准化结构,从而更轻松地与他人协作并开展开源项目。

为什么 psr-12 很重要?

像 psr-12 这样的编码标准不仅仅是对空格和制表符吹毛求疵。这就是它们重要的原因:

立即学习PHP免费学习笔记(深入)”;

  • 可读性:遵循标准样式的代码更容易阅读,特别是对于刚接触项目的开发人员。
  • 协作:如果每个人都遵循相同的规则,那么合作就会变得更加顺利和高效。
  • 可维护性:干净、一致的代码更容易调试、测试和随着时间的推移进行扩展。
  • 互操作性:在开源项目或集成第三方库时,遵循通用标准可确保不同代码库之间的兼容性。

psr-12 的关键规则

让我们深入了解 psr-12 规定的一些关键规则。虽然有许多较小的指南,但以下是最引人注目的指南。

1. 文件结构

  • 开始标签:php 文件必须使用
  • 编码:文件必须以 utf-8 编码,不带 bom(字节顺序标记)。
  • 行长度:行不应超过 120 个字符,但最好不超过 80 个字符。
  • 空行:php 开始标签之后或结束标签之前不应有空行。此外,return 语句之前以及方法定义之间必须有一个空行。

2. 命名空间和使用声明

psr-12 要求命名空间和 use 声明遵循特定的顺序以提高清晰度:

  • 命名空间声明:命名空间声明必须是 php 开始标记之后的第一行。命名空间后必须有一个空行。
  • use 声明:所有 use 声明必须在命名空间声明之后组合在一起,并用空行分隔。此外,最后一个 use 语句后必须有一个空行。

示例:

<?php

namespace app\controllers;

use app\models\user;
use app\repositories\userrepository;

class usercontroller {
    // class implementation
}

3. 类和方法

psr-12 对如何声明类、属性和方法强制执行一些严格的规则:

  • 类声明:class关键字后面必须跟一个空格,然后是类名。左大括号 { 必须与类声明放在同一行,右大括号 } 放在自己的行上。
  • 属性:所有属性都必须声明可见性(公共、受保护、私有)。
  • 方法:与类声明类似,function 关键字后面必须跟一个空格,然后是方法名称。必须为所有方法声明可见性。
class usercontroller {
    private $userrepository;

    public function __construct(userrepository $userrepository) {
        $this->userrepository = $userrepository;
    }
}

4. 控制结构

if、for、switch 等控制结构必须遵循一定的规则:

  • 结构:控制关键字和左括号之间必须有一个空格。必须始终使用大括号 {},即使对于单行语句也是如此。
  • 缩进:控制结构内的所有块都必须缩进一级(通常为四个空格)。
if ($user->isadmin()) {
    echo "user is an admin";
} else {
    echo "user is not an admin";
}

5. 评论和文档

注释对于解释为什么代码的某些部分存在至关重要。 psr-12 强调需要正确、清晰的评论。

  • 块注释:使用 /* */ 进行多行注释,并在注释前放置一个空行。
  • 单行注释:使用//进行内联注释,并确保注释有意义。
// fetch user from the repository
$user = $userrepository->find($id);

/*
 * if user is not found, throw an exception.
 * this helps in handling invalid user ids.
 */
if (!$user) {
    throw new notfoundexception();
}

如何在 php 项目中应用 psr-12

要在项目中遵循 psr-12,您可以在编写代码时手动遵守指南,但确保合规性的最佳方法是使用自动化工具。

MindShow
MindShow

MindShow官网 | AI生成PPT,快速演示你的想法

下载

首先,熟悉这些一般做法:

  • 使用一致的缩进:缩进需要四个空格。
  • 限制行长度:尽量将行长度控制在 120 个字符以下,但为了更好的可读性,最好使用 80 个字符。
  • 组织代码结构:遵循类声明、可见性和控制结构的规则。

帮助您遵循 psr-12 的工具

手动确保您的代码遵循 psr-12 可能非常耗时,但有一些工具可以帮助您自动化此过程。

1. php_codesniffer

确保 php 代码遵循 psr-12 的最流行工具之一是 php_codesniffer。它会分析您的代码并指出您偏离标准的地方。

安装和使用它:

composer require "squizlabs/php_codesniffer=*"

然后,针对您的代码运行它:

./vendor/bin/phpcs --standard=psr12 src/

2. php cs 修复程序

另一个有用的工具是 php cs fixer。它不仅可以检测问题,还可以自动修复您的代码以符合 psr-12。

composer require friendsofphp/php-cs-fixer

运行修复程序:

./vendor/bin/php-cs-fixer fix src/

3. phpstorm

如果您使用 phpstorm,您可以将其配置为遵循 psr-12。转到 设置 -> 编辑器 -> 代码样式 -> php 并将标准设置为 psr-12。

最后的想法

在 php 项目中遵循 psr-12 不仅仅是遵守任意规则。它是为了让你的代码更干净、更易读、更容易维护——无论你是单独工作还是与团队一起工作。通过遵循 psr-12,您不仅为自己编写代码,还为整个 php 社区编写代码。

采用此标准是朝着编写专业、一致且可维护的 php 代码迈出的一步。使用提到的工具使过程变得更容易,并观察您的项目变得多么干净和有组织!

编码愉快!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
phpstorm怎么导出项目
phpstorm怎么导出项目

phpstorm提供导出项目功能,步骤如下:打开phpstorm项目转到“项目”菜单选择“导出项目”选择导出格式指定导出位置选择导出范围勾选“包括依赖项”框(可选)单击“导出”完成导出。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

386

2024.04.08

phpStorm怎么运行
phpStorm怎么运行

本专题整合了phpstorm运行教程,阅读专题下面的文章了解更多相关内容。

89

2025.09.18

phpstorm开发环境搭建教程
phpstorm开发环境搭建教程

本专题整合了phpstorm开发环境搭建和运行项目教程,阅读专题下面的文章了解更多详细教程。

78

2025.09.18

phpstorm怎样运行php
phpstorm怎样运行php

本专题整合了phpstorm运行php相关教程,阅读专题下面的文章了解更多详细内容。

62

2025.09.18

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

23

2026.01.15

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

569

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

441

2024.03.13

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十四期_PHP8编程
第二十四期_PHP8编程

共86课时 | 3.5万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

第二十三期_PHP编程
第二十三期_PHP编程

共93课时 | 7.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号