最近,属性 RFC已经通过了投票阶段。它们与DocBlock注解有什么不同,它们会带来什么好处?
考虑简单的 Doctrine 实体,之前:
/**
* @ORM\Entity
*/
class Entity {
…
}
Run Code Online (Sandbox Code Playgroud)
后:
<<ORM\Entity>>
class Entity {
…
}
Run Code Online (Sandbox Code Playgroud)
小智 7
RFC 这部分的解释:为什么不扩展文档注释?解释了很多好处
其中很多归结为可以通过 PHP 检查属性的事实。工具可以利用这样一个事实,即这些属性是已解析的元数据,可以通过反射查看,而不是需要使用每个工具的自定义语法解析的注释。IDE 和静态分析工具将能够保证正确性,而无需知道特定工具的 docblock 注释语法,因为属性解析为必须存在的类,并且可能具有进一步的类型注释以添加检查。
所以: