PHP 规范

PHP 代码质量检查那些事 一、简介 你是否因为一遍又一遍地捍卫代码质量而感到厌倦?该如何保证 PHP 的代码质量,我们首先想到的是要遵循代码规范,良好的代码风格和编码习惯,虽然说 PSR 给出了良好的规范标准,但是光靠人工遵守难免会把握不到位,我们常说:立规范不如做工具。本篇来介绍一下 PHP 可用的静态代码质量检查工具,可以提前在你本地编辑器编写代码的时候就对你的 "Bad Coding" 代码做出提醒和预警,防止代码部署后,在运行时才发现问题而造成事故。 二、代码质量的检查层次 我把代码质量划分了四个检查层次:基础语法 阅读详情

> 作为一个新手,写出规范的代码也是一门必修课,除了阅读相应的代码规范文档之外,充分利用相关的工具能使得进阶之路事半功倍。今天这篇分享将简单地梳理一下 PHP 规范,并介绍一个代码检查工具 Code Sniffer,结合 PHPStorm 以及 GIT 进行实践。

PHP 规范

为什么需要统一代码规范?

PHP 社区百花齐放,拥有大量的函数库、框架和组件。PHP 开发者通常会在自己的项目中使用若干个外部库,因此 PHP 代码遵循(尽可能接近)同一个代码风格就非常重要,这让开发者可以轻松地将多个代码库整合到自己的项目中。

目前流行的一些规范:

  • PSR

    PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。

    PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等),虽然不是「官方」组织,但也代表了大部分的 PHP 社区。

    项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。

    目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。

    详细介绍请参考官方说明:

  • PEAR

    The PEAR Coding Standards apply to code that is part of the official PEAR distribution. Coding standards often abbreviated as CS among developers and they aim to keep code consistent to be easily readable and maintainable by most of PEAR folks.

    参考官方说明

  • Zend

    Zend Framework 使用的代码规范。

    参考官方说明

Code Sniffer

官方网站:https://github.com/squizlabs/PHP_CodeSniffer

PHP_CodeSniffer is a set of two PHP scripts; the main phpcs script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second phpcbf script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent.

简单来说,就是两个小工具,

  • phpcs (PHP Code Standard),用来检查代码规范
  • phpcbf (PHP Code Beautifier and Fixer),用来自动修复代码

安装 Code Sniffer

参考官方文档

使用 Code Sniffer

执行 phpcs 检查代码规范

$ phpcs /path/to/code/myfile.php

FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 5 ERRORS AFFECTING 4 LINES
--------------------------------------------------------------------------------
 2 | ERROR | [ ] Missing file doc comment
 3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but
   |       |     found "FALSE"
 5 | ERROR | [x] Line indented incorrectly; expected at least 4 spaces, found 1
 8 | ERROR | [ ] Missing function doc comment
 8 | ERROR | [ ] Opening brace should be on a new line
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

Code-Sniffer 默认使用 PEAR 代码规范。可以使用 --standard=xxx 指定。

$ phpcs --standard=PSR2 /path/to/code/myfile.php

或者修改默认配置

$ phpcs --config-set default_standard Squiz

执行 phpcbs 修复代码

$ phpcbf /path/to/code
Processing init.php [PHP => 7875 tokens in 960 lines]... DONE in 274ms (12 fixable violations)
    => Fixing file: 0/12 violations remaining [made 3 passes]... DONE in 412ms
Processing config.php [PHP => 8009 tokens in 957 lines]... DONE in 421ms (155 fixable violations)
    => Fixing file: 0/155 violations remaining [made 7 passes]... DONE in 937ms
Patched 2 files
Time: 2.55 secs, Memory: 25.00Mb

更多功能,参考官方文档

与 PHP Storm 集成

将 Code Sniffer 与 PHP Storm 集成,可以使 IDE 实时显示代码的规范情况,提醒开发人员修改代码,长期使用,可以让开发人员养成非常规范的代码习惯。

ide

如何配置?

  1. 为 PHPStorm 配置 Code Sniffer 路径:
    code-sniffer
    code-sniffer
  2. 设置 Inspections

    选择合适的 Coding Standard

利用 GIT Hook 强制代码检查

使用 GIT 的 Pre-Commit Hook,可以在代码被提交之前,强制调用 Code Sniffer 进行代码检查,如果不符合规范,将阻止用户提交代码。

  1. 在项目的 .git/hooks 建立 pre-commit 文件
  2. 写入代码:
    Pre-Commit Gist

试试看:)

PHP PSR规范详解 目前包括以下几个规范:PSR-0(弃用)PSR-1PSR-2PSR-3PSR-41.PSR-0自动加载规范,此规范已被启用-本规范已于2014年10月21日被标记为弃用,目前新的替代规范为【PSR-4】本文是为自动加载器实现通用自动加载所需要遵循的编码规范一个标准的命名空间与类名称的定义必须符合以下结构:\<Vendor Name><Namespace><Namesp... 阅读详情

相关推荐

Ubuntu20.04下Intel RealSense D435i相机驱动配置全攻略(含ROS Noetic适配)

本文详细介绍了在Ubuntu20.04系统下配置Intel RealSense D435i相机驱动的完整流程,包括libRealsense SDK 2.0安装、ROS Noetic适配及常见问题解决方案。通过实战指南帮助开发者快速实现深度相机与ROS的集成,适用于机器人视觉和SLAM应用开发。

weixin_29281915的博客 512

PHP Beautifier的安装和使用

PHP Beautifier是一个用php编写的php代码美化工具。通过pear可以很方便的安装并使用。 简单介绍下载windows下安装php beautifier和使用它格式化代码的方法: 1.确保php5环境下已经安装了pear,如果没有安装请参考文章《windows下安装pear包管理器》。 2.pear下安装php beautifier:     在上网环境下,C

fableboy的学习点滴 4878

赛灵思Xilinx 7系列FPGA硬件设计知识总结

本文讲述了赛灵思7系列FPGA硬件设计的关键点,为使用该系列FPGA提供硬件设计参考。

csdn_dsw的博客 3621

php 代码 自动检查,PHP中有什么好的代码自动检查工具吗

我们在php编码的时常常需要对代码进行检查,它自带php -l功能太弱了,只能针对语法错误进行检查。我需要的是一种能在生产环境中使用的检查工具,比如要有检测无用变量,或者直接使用了未经初始化的变量,当然还要能分析出潜在的错误代码,最好还能够检测出一些代码风格问题。这样可以在较大规模开发时,控制部分质量问题。比如Lint这一工具集,它除了最初的c语言版以外,还有其它版本的实现CSS Lint, JS...

weixin_33182922的博客 326

【鸿蒙南向开发】OpenHarmony——分布式数据对象之功能实践

通过本文的学习可了解到分布式数据对象的主要接口、大致调用方法和功能实现等。结合对应内容,可以进一步对分布式数据对象同步机制做深度学习。下一步,(1) 着重理解同步组网的构建原理。(2) 着重理解同步组网内,监听change和status变化的实现。●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:●关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。

HarmonyOS_666的博客 1091

Unity URP管线下的Highlight Plus插件,从导入到实现物体高亮的保姆级避坑指南

本文详细解析了在Unity URP管线中使用Highlight Plus插件实现物体高亮的完整流程与常见问题解决方案。从URP环境配置、插件导入避坑到相机设置优化,提供了一套完整的保姆级指南,帮助开发者高效解决高亮效果不显示等典型问题,并包含移动端性能优化与复杂场景管理的高级技巧。

weixin_27379781的博客 408

几款不错的PHP开发测试工具

几款不错的PHP开发测试工具 当我们经常都要处理象手工代码测试及部署这样枯燥重复的工作时,往往会感到沮丧,我们一直努力想变得高效率,正如DRY原则所说的(译者住:DRY=Don’t Repeat Yourself,不重复原则,参见:http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)。所以为什么不将这样的原则应用到软件开发的其他生命周

hzcyclone的专栏 4177

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

PHP编写规范

PHP编写规范是确保代码可读性、可维护性和一致性的重要准则。遵循规范有助于团队协作和项目长期发展。

LindomTC的博客 827

uniapp [安卓苹果App端] - 实现判断并开启消息通知/提示权限,监测通知权限未开启时弹框提示用户并引导用户跳转至设置界面,uniApp检查通知权限+提示是否打开+点击跳转设置(详细示例代码)

uni-app判断有无通知权限,并进行设置,设置手机通知权限,开启通知权限,uni-app解决权限问题,uniapp 拉起授权(拒绝后重新开启权限)uniApp打包的手机app如果用户没开启通知权限、引导用户开启,uni-app动态打开应用通知权限,拒绝后跳转设置页面,uniapp获取通知栏权限,苹果ios系统打开通知权限,被拒绝怎么办,uniapp安卓判断通知权限,uniapp打包的APP引导用户打开手机通知权限,uniapp权限被拒绝,跳转手机设置页面 权限设置,IOS应用内跳转系统设置,uni-app

🏆 前端领域优质创作者 1万+

【CASS精品教程】006:CASS7.1 道路设计参数文件打开无响应,提示roadpara解决办法,权威解决办法汇总

在用CASS7.1 软件进行断面法土方量计算,在生成断面图后,需要进行道路设计参数文件的设计,打开断面设计参数文件的时候,无响应,提示roadpara,如下所示: 道路设计参数文件 解决办法有三种 第一种方法:Win+R (1)64位系统:输入regsvr32 C:\Windows\SysWOW64\CellCtrl5.ocx,回车 (2)32位系统输入regsvr32 C:...

智慧空间实验室 1万+

PHP规范之编程规范,PHP规范之编程规范

本规范但愿经过制定一系列规范化PHP代码的规则,以减小在浏览不一样做者的代码时,因代码风格的不一样而形成不便。php当多名程序员在多个项目中合做时,就须要一个共同的编码规范, 而本文中的风格规范源自于多个不一样项目代码风格的共同特性, 所以,本规范的价值在于咱们都遵循这个编码风格,而不是在于它自己。程序员本文档的预期读者PHP开发人员。闭包本文档适用于全部PHP开发人员。函数本文档适用于大型商用项...

weixin_28728279的博客 279

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

如何检查php代码规范,PHP代码如何规范

PHP代码如何规范对于PHP入门学习的童鞋来说,基础是很重的,一定要打好基础。那么大家知道PHP代码如何规范呢?下面一起来看看!了解PHP开发规范可以少走很多弯路,网上各种PHP开发规范也很多,我结合自身使用PHP的情况,来说说我所理解的PHP开发规范,涉及多个方面,比如PHP代码规范、PHP文件命名规范、网站开发流程、网站安全与维护等。作为PHP开发规范的开篇,我从一个纯PHP开发者的角度来说说...

weixin_42469000的博客 233

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PHP编程规范

<br /><br />一直以来我都是以php函数的风格来写php,所有变量,函数,类都使用小写,单词之间以下划线隔开,一直比较排斥驼峰式的代码规范,个人觉得在大小写字母之间的书写代码,很麻烦,而且PHP自己的函数都是小写,为什么我不用这种格式呢?<br />良好的代码书写习惯 + 良好的注释习惯 + PhpDocumentor = 程序说明书<br />一个团队,必须有整齐的代码书写习惯,如果再配上统一的IDE开发环境,详细的任务编码流程,完善的代码测试(如:SimpleTest),那么整个团队的开发效率

5284

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

PHP规范之编程规范,PHP 规范之编程规范

概述本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范, 而本文中的风格规范源自于多个不同项目代码风格的共同特性, 因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。本文档的预期读者PHP开发人员。本文档适用于大型商用项目。文档截图: 文件夹文件夹名称必须符合CamelCa...

weixin_32585497的博客 176

PHP 编写规范

基础规范 这是由 PHP-FIG(PHP Framework Interoperability Group)制定的 PHP 编码规范(PSR:Proposing a Standards Recommendation) 文档列表:PHP Standards Recommendations 重点阅读:PSR-1: Basic Coding Standard、PSR-12: Extended Coding Style 团队规范 代码注释 行注释: // 空格后写注释内容 块注释: /**

qq_35641923的博客 373

php 代码规范,PHP代码规范

我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果:1、提高我们的编码效率。2、提高代码的可读性。3、显示我们专业。别人看到了我们的代码,发现整个代码的书写流程都整齐划一,瞬间逼格就上去了!划重点!!!4、方便团队协同工作。大家使用同一的规范,这样就消除了五花八分的书写方式,同一协调!编码规范包含两大块,代码的书写规范和注释的书写规范。1.代码的书写规范文件夹的命名:文件夹同...

weixin_39633500的博客 412

php psr 编码规范_PHP编码风格规范

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

weixin_33110093的博客 132

PHP编码规范

以PHP开发为例,编码规范就是融合了开发人员长时间积累下来的经验,形成了一种良好统一的编程风格,这种良好统一的编程风格会在团队开发或二次开发时起到事半功倍的效果。编码规范是一种总结性的说明和介绍,并不是强制性的规则。从项目长远的发展以及团队效率来考虑,遵守编码规范是十分必要的。遵守编码规范的好处如下:编码规范是团队开发成员的基本要求。开发人员可以了解任何代码,理清程序的状况。提高程序的可读性,有利于相关设计人员交流,提高软件质量。

qq_40445693的博客 990

PHP注释语法规范和命名规范]

PHP注释规范注释在写代码的过程中非常重要,好的注释能让你的代码读起来更轻松,在写代码的时候一定要注意注释的规范。php里面常见的几种注释方式:1.文件的注释,介绍文件名,功能以及作者版本号等信息/** * 文件名简单介绍 * * 文件功能 * @author 作者 * @version 版本号 * @date 2020-02-02 */2.类的注释,类名及介绍/** * 类

whucaodi的专栏 4147

php编码规范

开发团队的个人能力良莠不齐,代码风格也各有风格.为了提高项目整体编码质量,降低代码的维护难度,制定此编码规范。 编码规范 1. 标签 2. 编码 3. 注释 3.1 单行注释 3.2 多行注释 3.3 文件注释 3.4 类注释 3.5 方法注释 ...

ian有话说 265

PHP开发代码规范

1 编写目的 为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范。开发团队根据自己的实际情况,可以对本规范进行补充或裁减。 2 整体要求 技术部php开发规范将参照PEAR的规范,基本采用PEAR指定的规范,在其基础上增加、修改或删除部分适合具体开发环境的规范。本规范只针对PHP开发过程中编码的规范,对于PHP开发项目中

倾听雨落 3130
上一篇: PHP调试器的使用
下一篇: PHP xdebug 调试工具安装与使用
df007df
博客等级 码龄18年 833粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

df007df

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值