编码标准

编辑本页

编码标准

ob娱乐下载Symfony代码由世界各地数以千计的开发人员贡献。为了使每段代码看起来都熟悉,Symfony定义了一些所有代码都必须遵循的编码标准。ob娱乐下载

这些Symfob娱乐下载ony编码标准是基于PSR-1PSR-2PSR-4而且PSR-12标准,所以你可能已经知道其中的大部分。

让你的代码遵循编码标准

Symfony不是手动检查代码,而是简单地确保您提供的代码与预期的代码语法匹配。ob娱乐下载首先,安装PHP CS修复工具然后,运行这个命令来修复任何问题:

1 2
cd你的项目/php php-cs-fixer。Phar fix -v

如果您忘记运行这个命令,并提出一个有语法问题的拉请求,我们的自动化工具将警告您,并将提供解决方案。

ob娱乐下载Symfony编码标准的细节

如果您想详细了解Symfony编码标准,这里有一个简短的示例,ob娱乐下载包含下面描述的大多数特性:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
/* *该文件是Symfony包的一部分。ob娱乐下载* * (c) Fabien Potencier < Fabien@ob娱乐下载symfony* *有关完整的版权和许可信息,请查看与此源代码一起分发的license *文件。* /名称空间Acme使用其他Qux/** *编码标准演示。* /FooBar公共常量SOME_CONST =42/ * * *@var字符串* /私人fooBar私人qux/ * * *@param$dummy一些参数描述*/公共函数__construct(字符串, Quxqux->fooBar =->transformText ();->qux为qux;}/ * * *@deprecated* /公共函数someDeprecatedMethod()字符串{trigger_deprecation (“ob娱乐下载symfony /包名称”“5.1”%s()方法已弃用,请改用Acme\Baz::someMethod()方法。__METHOD__);返回巴兹::someMethod ();}/** *转换作为第一个参数的输入。* *@param转换* *中使用的选项集合@throws当提供无效选项时\RuntimeException */私人函数transformText(bool |字符串数组,选项= []):哦?字符串defaultOptions= (“some_default”= >“值”“another_default”= >“更多的价值观”,);foreach选项作为的名字= >价值) {如果(!array_key_exists (的名字defaultOptions)) {\ RuntimeException (sprintf (“无法识别的选项“%s””的名字));}}mergedOptions= array_merge (defaultOptions选项);如果真正的===) {返回“东西”;}如果(\ is_string ()) {如果“值”===mergedOptions“some_default”) {返回substr (05);}返回函数);}返回;}/** *为给定值执行一些基本操作。* /私人函数performoperation中(混合价值= null, booltheSwitch= false)如果(!theSwitch) {返回;}->qux->doFoo (价值);->qux->doBar (价值);}}

结构

  • 在每个逗号分隔符后添加一个空格;
  • 在二进制运算符周围添加一个空格(= =& &,…),但连接()操作符;
  • 放置一元运算符(--,…)与受影响变量相邻;
  • 总是使用相同的比较除非你需要打字杂耍;
  • 使用尤达条件根据表达式检查变量以避免在条件语句中发生意外赋值(这适用于= =! ====,= = !);
  • 在多行数组中的每个数组项后添加逗号,即使是在最后一个数组项之后;
  • 在前面添加一个空行返回语句,除非返回值单独存在于语句组中(如如果声明);
  • 使用返回null;当函数显式返回时价值观和使用返回;当函数返回时无效值;
  • 不要添加无效将类型返回到测试中的方法;
  • 使用大括号表示控件结构体,而不管它包含多少条语句;
  • 每个文件定义一个类——这不适用于私有助手类,这些类不打算从外部实例化,因此不受PSR-0而且PSR-4自动装载标准;
  • 在类名的同一行声明类继承和所有实现的接口;
  • 在方法之前声明类属性;
  • 首先声明公共方法,然后是保护方法,最后是私有方法。此规则的例外是类构造函数和设置()而且tearDown ()PHPUnit测试的方法,必须始终是增加可读性的第一个方法;
  • 将所有参数声明为方法/函数名的同一行,不管有多少个参数。唯一的例外是使用的构造函数方法建造商财产提升,其中每个参数必须在新行上后面的逗号
  • 在实例化类时使用括号,而不管构造函数有多少个参数;
  • 异常和错误消息字符串必须使用连接sprintf
  • 不要使用其他的elseif打破如果而且情况下返回或抛出某物的条件;
  • 不要在周围使用空格偏移访问器和之前抵消访问器;
  • 添加一个使用语句,用于不属于全局命名空间的每个类;
  • 当PHPDoc标记像@param@return包括而其他类型,总是放置在类型列表的末尾。

命名约定

  • 使用camelCase对于PHP变量,函数和方法名,参数(例如:acceptableContentTypes美元hasSession ());
  • 使用snake_case配置参数和Twig模板变量(例如:framework.csrf_protectionhttp_status_code);
  • 使用SCREAMING_SNAKE_CASE作为常量(例如:InputArgument: IS_ARRAY);
  • 使用UpperCamelCase列举个案(例如:InputArgumentMode: IsArray);
  • 为所有PHP类、接口、特征和枚举使用命名空间UpperCamelCase他们的名字(例如:ConsoleLogger);
  • 为所有抽象类加上前缀摘要除了PHPUnit)* TestCase.请注意,一些早期的Symfony类没有遵循这个ob娱乐下载约定,并且由于向后兼容的原因没有重命名。然而,所有新的抽象类都必须遵循这个命名约定;
  • 后缀接口接口
  • 后缀特征为特征
  • 不要为类或枚举使用专用后缀(例如枚举),但下列情况除外。
  • 后缀异常异常
  • 前缀PHP属性作为如适用(例如:# (AsCommand)而不是#【命令】,但#(时)保持原样);
  • 使用UpperCamelCase命名PHP文件(例如:EnvVarProcessor.php)和蛇的情况下命名Twig模板和web资产(section_layout.html.twigindex.scss);
  • PHPDocs中的类型提示和类型转换,请使用保龄球(而不是布尔布尔),int(而不是整数),浮动(而不是真正的);
  • 别忘了看更详细的约定文档以获得更主观的命名考虑。

服务命名约定

  • 服务名必须与其类的全限定类名(FQCN)相同。App \ EventSubscriber \ UserSubscriber);
  • 如果同一个类有多个服务,则对主服务使用FQCN,其余服务使用小写和下划线名称。可选地将它们分成用点分隔的组(例如:something.service_namefos_user.something.service_name);
  • 参数名使用小写字母(使用% env (VARIABLE_NAME) %语法);
  • 为公共服务添加类别名(例如别名ob娱乐下载Symfony \组件\ \类名something.service_name).

欧宝官网下载app

  • 只有当类、方法和函数添加的相关信息不重复名称、原生类型声明或上下文时(例如。运算符检查);
  • 中定义的注释和类型PHPDoc参考.为了改进静态分析的类型,还允许使用以下注释:

  • 将注释分组在一起,以便相同类型的注释立即相互跟随,不同类型的注释由单个空行分隔;
  • 省略了@return如果方法不返回任何内容,则注释;
  • 不要在类、方法和函数上使用一行PHPDoc块,即使它们只包含一个注释/** {@inheritdoc} */在一行中);
  • 在添加新类或对现有类进行重大更改时,可以使用@author可以添加或扩展带有个人联系信息的标签。请注意,个人联系信息可能会根据要求更新或删除核心团队

许可证

  • ob娱乐下载Symfony是在MIT许可证下发布的,许可证块必须出现在每个PHP文件的顶部,在名称空间之前。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.0支持通过SensioLabs