代码必须遵循PSR-1
代码必须使用4个空格作为缩进,不能使用TABs
每行长度不是硬性限制的,必须孔子在120个字符,最好应该不超过80个字符
在声明命名空间后必须有一个空行,同时必须在 引用“use”块后有一个空行
引用声明(use)块必须在命名空间声明后
<?php namespace Vendor\Package; [---声明命名空间后的空行---] use FooInterface; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; [--其他类引用块后的空行--] class Foo extends Bar implements FooInterface { [--类的开始大括号必须新起一行--] public function sampleMethod($a, $b = null) {[--方法的开始大括号必须新起一行--] if ($a === $b) {[--程序结构体的开始大括号必须在同一行,开始括号后,结束括号前都没有空格--] bar(); } elseif ($a > $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } [--程序结构体结束大括号必须单独起一行--] }[--方法的结束大括号必须新起一行--] final public static function bar() [--可见性在static前,final和abstract在可见性前] { // method body } }[--类的结束大括号必须新起一行--]
类的大括号开始必须在下一行,关闭大括号必须是在类的最后单独一行
方法的大括号开始必须在下一行,关闭大括号必须是在方法的最后单独一行
必须声明所有方法和属性的可见性(public/protected/private),abstrat(抽象) 和 final(无法被继承的)必须在可见性前声明,static(静态)必须在可见性后声明
流程控制结构关键字后面必须有一个空格;方法和函数调用后面不能有空格
流程控制的开始大括号不行在同一行,关闭结束大括号必须在流程控制体的最后单独一行
流程控制结构后开始括号后以及结束关闭括号前都不能有空格
PHP关键字必须是小写:true,false,null
关键字extends 和 implements 必须和类名在同一行
implements(类似多继承)可以被分割成多行,后面每行都要缩进一次, 一行只能有一个interface
样式1 ok: <?php namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class ClassName extends ParentClass implements \ArrayAccess, \Countable { // constants, properties, methods } 样式2 ok: <?php namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class ClassName extends ParentClass implements \ArrayAccess, \Countable, \Serializable { // constants, properties, methods } 样式3:WRONG <?php namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class ClassName extends ParentClass implements \ArrayAccess, \Countable,\Serializable { // constants, properties, methods } 样式4:WRONG <?php namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class ClassName extends ParentClass implements \Serializable, \ArrayAccess, \Countable { // constants, properties, methods }
关键字 var 不能用于声明一个属性,一行不能声明多个属性,属性名不应以下划线为前缀来表示受保护或私有的可见性。
多个方法参数和后面的逗号之间不能有空格;在每个逗号后面都必须有一个空格;如果参数列表必须分割成多行时,每行都有一个缩进,一旦这样做,第一个参数必须新起一行,每行必须有一个参数 右括号在参数后新起一行,并和方法做大括号在同一行
示例1 ok: <?php namespace Vendor\Package; class ClassName { public function foo($arg1, &$arg2, $arg3 = []) { // method body } } 示例2 ok: <?php namespace Vendor\Package; class ClassName { public function aVeryLongMethodName( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ) { // method body } } 示例3 WRONG: <?php namespace Vendor\Package; class ClassName { public function aVeryLongMethodName( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ) { // method body } } 示例4 WRONG: <?php namespace Vendor\Package; class ClassName { public function aVeryLongMethodName( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ) { // method body } } 示例5 WRONG: <?php namespace Vendor\Package; class ClassName { public function aVeryLongMethodName( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ){ // method body } }
调用一个行数和方法时候在操作符和函数方法名之间不能有空格,同样在第一个参数前,最后一个参数后都不能有空格;如果参数是多行话,同样是从第一个参数开始新起一行,一次缩进,每行一个参数。
几种程序结构标准格式
if elseif else <?php if ($expr1) { // if body } elseif ($expr2) { // elseif body } else { // else body; } switch,case: <?php switch ($expr) { case 0: echo 'First case, with a break'; break; case 1: echo 'Second case, which falls through'; // no break case 2: case 3: case 4: echo 'Third case, return instead of break'; return; default: echo 'Default case'; break; } while: <?php while ($expr) { // structure body } do while: <?php do { // structure body; } while ($expr); for: <?php for ($i = 0; $i < 10; $i++) { // for body } foreach <?php foreach ($iterable as $key => $value) { // foreach body } try, catch <?php try { // try body } catch (FirstExceptionType $e) { // catch body } catch (OtherExceptionType $e) { // catch body }
闭包中每个参数一行,匿名函数中 function后和use前后空格
<?php $foo->bar( $arg1, function ($arg2) use ($var1) { // body }, $arg3 );
相关推荐
这是一个预提交脚本,用于检查添加,复制,修改或重命名的文件是否存在语法错误和PSR2编码标准。 安装 # Put the pre-commit file in the .git/hooks/ folder in your git repository. curl -O ...
目标配置,它在每次提交中检查所提交的代码是否通过了单元测试,并符合PSR2编码样式和静态分析检查。 它运行以下检查: 检查composer.json是否有效使用作曲者是否没有任何已知安全漏洞的依存关系检查提交是否不包含...
支持可调水平仪(即PSR2)和固定器。 可以配置为支持PHP以外的其他文件扩展名,即“ .inc”文件。 支持不同PHP-CS-Fixer安装方法,即Composer与手动安装。 设置 请参阅我们的 ,以获取有关如何安装扩展及其依赖项...
ONGR严格编码标准 该标准为空格,注释样式和PHPDoc提供了严格的代码样式检查。 它与PSR-2兼容,并具有良好的编程和文档编制惯例。例子是否曾经想过标准化您团队的代码风格? 这是符合PSR-2的代码: <?...
PHP编码标准修复程序PHP编码标准修复程序工具可以在您希望遵循PSR-1和PSR-2文档以及更多文档中定义PHP编码标准时修复代码中的大多数问题。 如果您已经在使用PHP编码标准修复程序PHP编码标准修复程序(PHP CS Fixer)...
首先,让我们深入理解PSR-2编码规范。PSR(PHP Standard Recommendations)是由PHP社区制定的一系列最佳实践和标准,其中PSR-2是关于代码风格的规范。它规定了类名、方法名、缩进、空格等代码格式化规则,目的是提高...
编码样式指南,替代PSR-2 改进的自动装带器 基本原理 有些人喜欢制表符,有些人喜欢空格。 30%PHP项目使用选项卡(包括一些PHP-FIG成员项目)。 我们尊重选择的自由,特别是当可以使用Git自动转换不重要的空格时,...
Herbie基于成熟的库和概念: 和用于格式化页面内容模板引擎,用于渲染布局用于配置和数据结构文件和用于依赖性和插件管理 PHP中间件Herbie支持以下: PSR-2编码样式指南PSR-3记录器接口PSR-4自动加载标准PSR-7 HTTP...
您是否要遵循PSR-1,PSR-2等中定义PHP编码标准,还是遵循其他由社区驱动的标准(例如Symfony)。 您还可以通过配置定义(团队的)样式。 它可以使您的代码现代化(例如将pow函数转换为PHP 5.6上的**运算符)并(对...
您是否要遵循PSR-1,PSR-2等中定义PHP编码标准,还是遵循其他由社区驱动的标准(例如Symfony)。 您还可以通过配置定义您的(团队)样式。 它可以使您的代码现代化(例如将pow函数转换为PHP 5.6上的**运算符)并...
EditorConfig项目包含一个用于定义编码样式的文件格式和一个文本编辑器插件集合,这些文本编辑器插件使编辑器可以读取文件格式并遵循定义的样式。 EditorConfig文件易于阅读,并且可以与版本控制系统很好地协同工作...
Laravel雄辩的旗帜 介绍 雄辩的布尔值和时间戳标记的属性行为。... PSR-2(编码样式指南) 。 PSR-4(自动加载标准) 。 涵盖了单元测试。 可用标志列表 性状名称 逻辑 数据库列 旗型 冲突 HasAcceptedAt 经典的
PHP Coding Standards Fixer (PHP CS Fixer) 工具修复您的代码以遵循标准,无论您是想遵循 PSR-1、PSR-2 等中定义的 PHP 编码标准,还是其他社区驱动的标准,如 Symfony one . 您还可以通过配置定义您(团队的)风格...
7. **编码规范与性能优化**:为了保持代码的可读性和高效性,开发者应遵循PHP的最佳实践和编码标准,例如PSR(PHP FIG的编码规范)。此外,使用索引优化数据库查询,缓存查询结果,以及合理使用数据库连接池等方法...
PHP Code Sniffer 可以检查代码是否符合诸如PSR-1、PSR-2等编码标准,这些标准是由PHP FIG(PHP Framework Interop Group)制定的。通过检测命名约定、缩进、空格、注释格式等,它能确保代码的整洁和专业性。例如,...
这包括代码结构的规划,如模块化、类和函数的划分,以及遵循一致的编码样式。编码样式不仅关乎美观,更关乎可读性和可维护性。例如,采用PSR(PHP Framework Interop Group)的编码规范可以确保团队间的代码风格统一...
地点PHPFreaks 主站设置git clone :... 将 vhost 指向 phpfsite/public 如果一切顺利,您应该能够得到以下回复: yourvhost.domain.tld/hello/world编码标准请使用 [PSR-2][] 编码标准/样式来更改代码。 [PSR-0]: :