编码标准

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

编码标准

Symfony贡献代码时,你必须遵循它的编码标准。欧宝娱乐app下载地址长话短说,这里是黄金法则:模仿现有的Symfony的代码欧宝娱乐app下载地址。大多数开源包和库使用Symfony还遵循相同的规定,你也应该这么做。欧宝娱乐app下载地址

记住,标准的主要优势是,每段代码看起来和感觉熟悉,这不是关于这个或那个更具可读性。

欧宝娱乐app下载地址Symfony中定义的标准PSR-0,PSR-1,PSR-2PSR-4文档。

因为一张照片或者一些代码值得一千字,下面是一个简短的示例包含大多数特性描述如下:

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 96 97 98 99 100 101 102 103
< ? php/ * *这个文件是Symfony包的一部分。欧宝娱乐app下载地址* * (c)法效力<法比安@欧宝娱乐app下载地址symfonycom > * *完整的版权和许可信息,请查看许可*文件分发源代码。* /名称空间Acme;/ * * *编码标准示范。* /FooBar{常量SOME_CONST =42;/ * * *@var字符串* /私人美元fooBar;/ * * *@param字符串假美元一些参数描述* /公共函数__construct(美元){美元- >fooBar =美元- >transformText (美元);}/ * * *@return字符串* *@deprecated* /公共函数someDeprecatedMethod(){@trigger_error (sprintf (% s()方法是弃用自版本2.8和3.0将被删除。使用Acme \记者::someMethod ()。”,__METHOD__),E_USER_DEPRECATED);返回巴兹::someMethod ();}/ * * *转换输入作为第一个参数。* *@parambool | *字符串假美元一些参数描述@param数组中选择一个选项的集合使用美元转换* *@return字符串|零转换输入* *@throws\ RuntimeException当一个无效的选择* /提供私人函数transformText(美元数组,美元选项=数组()){美元defaultOptions=数组(“some_default”= >“值”,“another_default”= >“更多的价值观”,);foreach(美元选项作为美元选项){如果(! in_array (美元选项,美元defaultOptions)){\ RuntimeException (sprintf (未识别的选项“% s”的,美元选项));}}美元mergedOptions= array_merge (美元defaultOptions,美元选项);如果(真正的= = =美元){返回;}如果(“字符串”= = =美元){如果(“值”= = =美元mergedOptions(“some_default”){返回substr (美元,0,5);}返回函数美元);}}/ * * *执行一些基本的检查对于一个给定的值。* *@param混合一些值检查*美元价值@parambool美元theSwitch一些开关来控制方法的流* *@returnbool |零结果检查如果theSwitch美元不假,否则空* /私人函数reverseBoolean(美元价值=零,美元theSwitch= false){如果(!美元theSwitch){返回;}返回!美元价值;}}

结构

  • 每个逗号分隔符后添加一个空格;
  • 添加一个空间二元操作符(= =,& &…),除了连接()操作符;
  • 一元操作符(!,- - -附近,…)变量的影响;
  • 总是使用相同的比较除非你需要类型的;
  • 使用尤达条件当检查一个变量与表达式,以避免意外在条件语句(这适用于作业= =,! =,= = =,= = !);
  • 添加一个逗号在多行数组,每个数组项后即使最后一个;
  • 添加一个空白行返回语句,除非仅返回语句组内(如一个如果声明);
  • 只使用返回;而不是返回null;当一个函数必须返回void早;
  • 使用括号来表示控制结构身体无论它包含的语句数;
  • 每个文件定义一个类,这并不适用于私人助手类不打算从外部被实例化,因此并不担心PSR-0PSR-4自动装载标准;
  • 声明类属性之前方法;
  • 首先声明公共方法,然后最后私营企业的保护。这条规则的例外是类构造函数和设置拆卸PHPUnit)测试方法,应该是第一个方法来增加可读性;
  • 使用括号在实例化类时不管参数构造函数的数量;
  • 异常和错误信息字符串应该连接使用sprintf
  • 调用trigger_errorE_USER_DEPRECATED应该转而选择通过@操作符。阅读更多约定;

命名约定

  • 使用camelCase,而不是强调,变量,函数和方法名、参数;
  • 使用下划线的选项名称和参数名称;
  • 对所有类使用名称空间;
  • 抽象类前面加上文摘。请注意一些早期Symfony类不遵守本公约和没欧宝娱乐app下载地址有被重命名原因向后兼容性。然而所有的新抽象类必须遵循此命名约定;
  • 后缀接口与接口;
  • 后缀特征与特征;
  • 后缀异常与异常;
  • 对文件名使用字母数字字符和下划线;
  • 在PHPDocs类型提示和铸造、使用bool(而不是布尔布尔),int(而不是整数),浮动(而不是真正的);
  • 别忘了看更详细的约定文档更多主观命名注意事项。

服务命名约定

  • 一个服务名称包含组织、由点;
  • 包的DI别名是第一组(如。fos_user);
  • 对服务和参数名称使用小写字母;
  • 组名称使用下划线符号。

欧宝体育电话

  • 添加PHPDoc块所有类、方法和功能;
  • 相同类型的注释注释分组,以便立即互相关注,和不同类型的注释是由一个空行;
  • 省略了@return标记如果方法不返回任何值;
  • @package@subpackage注释不习惯。

许可证

  • 欧宝娱乐app下载地址Symfony是MIT许可下发布,许可块必须出席每一个PHP文件,之前的名称空间。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。