我想注册网站我怎么做深圳网页设计招聘信息
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:15
当前位置: 首页 > news >正文
我想注册网站我怎么做,深圳网页设计招聘信息,网站设计班培训,做橱窗设计的网站一、PSR规范整理
PHP 已有的编码规范如下
https://blog.csdn.net/qq_40876291/article/details/103848172
1.1 基本编码规范#xff1a;PSR1
官网规范链接 https://www.php-fig.org/psr/psr-1/
文件只能使用?php和?标记。文件必须仅使用UTF-8#xff0c;而不使…一、PSR规范整理
PHP 已有的编码规范如下
https://blog.csdn.net/qq_40876291/article/details/103848172
1.1 基本编码规范PSR1
官网规范链接 https://www.php-fig.org/psr/psr-1/
文件只能使用?php和?标记。文件必须仅使用UTF-8而不使用BOM用于PHP代码。文件应该要么声明符号(类、函数、常量等)要么引起副作用(例如生成输出、更改Ini 设置等) 但不应同时包含这两项操作命名空间和类必须遵循“自动加载” PSR[ PSR-0PSR-4 ]。类名必须在以驼峰大小写格式命名。首字母及所有子字首字母都大写示例 StudlyCaps 类常量所有字母必须为大写子字之间用下划线分隔。方法名必须以驼峰式声明。首字母小写所有子字首的字母都大写示例 studlyCaps
1.2 PSR2 编码风格指南已废弃
官网规范链接 https://www.php-fig.org/psr/psr-2/
代码必须遵照 PSR-1。函数代码必须使用4个空格的缩进而不是制表符。一行代码长度不该硬性限制软限制必须为120个字符应为80个字符或者更少。在namespace声明下面必须有一个空行而且use声明代码块下面也必须有一个空行。类的左花括号必须放到下一行右花括号必须放在类主体的下一行。方法的左花括号必须放在下一行右花括号必须放在方法主体下面。全部的属性和方法必须有可见性(即Public, Protect, Private)声明abstract和final声明必须在可见性以前static声明必须在可见性以后。控制结构的关键词必须在后面有一个空格 方法和函数不可有。控制结构的左花括号必须放在同一行右花括号必须放在控制主体的下一行。控制结构的左括号后面不可有空格右括号以前不可有空格。
1.3 PSR12 扩展编码规范
官网规范链接 https://www.php-fig.org/psr/psr-12/
1.3.1 基本编码标准
代码必须遵循PSR-1中列出的所有规则。
1.3.2 文件
所有PHP文件必须仅使用Unix LF换行行结尾。所有PHP文件必须以非空白行结束以单个LF结束。?必须从仅包含PHP的文件中省略结束标记。
1.3.3 行
行长度不得有硬性限制。行长度的软限制必须是120个字符。行不应超过80个字符; 超过的行应该被分成多个后续行每行不超过80个字符。在行的末尾不得有尾随空格。可以添加空行以提高可读性并指示相关的代码块除非明确禁止。每行不得超过一个语句。
1.3.4缩进
代码必须为每个缩进级别使用4个空格的缩进并且不得使用制表符进行缩进。
1.3.5关键字和类型
所有PHP保留的关键字和类型必须是小写的。添加到未来PHP版本的任何新类型和关键字必须是小写的。类型的关键字的简短形式必须是即使用bool代替boolean int而不是integer等
1.3.6.声明语句命名空间和导入语句
PHP文件的标头可能包含许多不同的块。如果存在下面的每个块必须用一个空行分隔并且不得包含空行。尽管可以省略不相关的块但每个块必须按下面列出的顺序排列。
打开?php标签。文件级docblock。一个或多个声明语句。文件的命名空间声明。一个或多个基于类的use import语句。一个或多个基于函数的use import语句。一个或多个基于常量的use import语句。文件中的其余代码。
当文件包含HTML和PHP的混合时仍可以使用上述任何部分。如果是这样它们必须出现在文件的顶部即使代码的其余部分包含一个结束的PHP标记然后是HTML和PHP的混合。
当开始?php 标记位于文件的第一行时它必须在它自己的行上而没有其他语句除非它是包含PHP开始和结束标记之外的标记的文件。
导入语句绝不能以前导反斜杠开头因为它们必须始终是完全限定的。
1.4 自动加载规范PSR0已废弃
一个完全合格的namespace和class必须符合这样的结构“ Vendor Name( Namespace)* Class Name”每个namespace必须有一个顶层的namespace”Vendor Name”提供者名字每个namespace可以有多个子namespace当从文件系统中加载时每个namespace的分隔符(/)要转换成DIRECTORY_SEPARATOR(操作系统路径分隔符)在类名中每个下划线()符号要转换成DIRECTORY_SEPARATOR(操作系统路径分隔符)。在namespace中下划线()符号是没有特殊意义的。当从文件系统中载入时合格的namespace和class一定是以 .php 结尾的verdor name,namespaces,class名可以由大小写字母组合而成大小写敏感的
1.5 自动加载规范 PSR4
官网规范链接 https://www.php-fig.org/psr/psr-4/
PSR-4 描述了从文件路径中 自动加载 类的规范。 它拥有非常好的兼容性并且可以在任何自动加载规范中使用包括 PSR-0。 PSR-4 规范也描述了放置 autoload 文件就是我们经常引入的 vendor/autoload.php的位置。
1.5.1 术语
「class」指的是类classes、接口interfaces、特征traits和其他类似的结构。
全限定类名具有以下形式
NamespaceName(SubNamespaceNames)ClassName 全限定类名必须拥有一个顶级命名空间名称也称为供应商命名空间vendor namespace。
全限定类名可以有一个或者多个子命名空间名称。
全限定类名必须有一个最终的类名我想意思应该是你不能这样 NamespaceName(SubNamespaceNames)\ 来表示一个完整的类。
下划线在全限定类名中没有任何特殊含义在 PSR-0 中下划是有含义的。
全限定类名可以是任意大小写字母的组合。
所有类名的引用必须区分大小写。
全限定类名的加载过程
在全限定的类名一个「命名空间前缀」中一个或多个前导命名空间和子命名空间组成的连续命名空间不包括前导命名空间的分隔符至少对应一个「根目录」。
「命名空间前缀」后面的相邻子命名空间与根目录下的目录名称相对应且必须区分大小写其中命名空间的分隔符表示目录分隔符。
最终的类名与以.php 结尾的文件名保持一致这个文件的名字必须和最终的类名相匹配意思就是如果类名是 FooController那么这个类所在的文件名必须是 FooController.php。
自动加载文件禁止抛出异常禁止出现任何级别的错误也不建议有返回值。
二、sonar 对PHP 编码规范的支持
用codesniffer 进行代码规范检查命令如下
./vendor/bin/phpcs –colors –standardPSR1,PSR12 –encodingutf-8 –tab-width4 ./src
规范包括 PSR1 PSR12 utf-8编码 tab用4个空白符表示
目前 sonarqube 内置的PHP编码规则集包括
Drupal 21条规则PSR-2 20条规则Sonar way 161条规则
其中Sonar way 为默认的规则
由于PSR2 涵盖了PSR1并且包含了 utf-8编码tab用4个空白符表示这两点所以主要就是看 PSR12的支持情况。
参考
PHP 技术论坛文档《PHP PSR 标准规范》 https://learnku.com/docs/psr/psr-4-autoloader/1608
- 上一篇: 我想找个郑州做网站的网站开发按几年摊销
- 下一篇: 我想注册一个做门窗的网站应该怎样做网站美化的目标
相关文章
-
我想找个郑州做网站的网站开发按几年摊销
我想找个郑州做网站的网站开发按几年摊销
- 技术栈
- 2026年04月20日
-
我想来做外贸网站来推广中山网站建设文化方案
我想来做外贸网站来推广中山网站建设文化方案
- 技术栈
- 2026年04月20日
-
我想建网站做推广中国企业信用信息网官网
我想建网站做推广中国企业信用信息网官网
- 技术栈
- 2026年04月20日
-
我想注册一个做门窗的网站应该怎样做网站美化的目标
我想注册一个做门窗的网站应该怎样做网站美化的目标
- 技术栈
- 2026年04月20日
-
我想自己建立一个网站昆明制作网站公司
我想自己建立一个网站昆明制作网站公司
- 技术栈
- 2026年04月20日
-
我想自己开发一个游戏seo排名赚app最新版本
我想自己开发一个游戏seo排名赚app最新版本
- 技术栈
- 2026年04月20日
