son*_*nam 11 symfony doctrine-orm
我在Symfony框架中使用Doctrine 2作为ORM.使用基于注释的实体映射,我将不得不编写大量代码(setter和getter,映射信息等).使用YAML/XML我不需要写很多列定义和元数据.在Doctrine文档中,它们主要使用示例中的注释,很少使用YAML或XML.
我应该使用YAML/XML还是注释?
对于注释,我可以在http://docs.doctrine-project.org/en/latest/reference/annotations-reference.html找到每个注释的文档.我找不到YAML或XML中的注释等价物; 如何将注释转换为等效的YAML/XML表达式?
Iva*_*tar 21
这基本上取决于偏好.
这是我对事物的看法:
注释的优点:
yaml/xml的优点
如果您更改数据库或域,您仍然必须以任何一种形式维护它们,因此从这个角度来看,任何方向都没有真正的优势.
从性能的角度来看,在生产中你应该使用doctrine的缓存来缓存映射,所以它们在这里也是相同的.
关于这个:"我将不得不写很多代码,setter和getter,映射信息":
Doctrine需要私有/受保护的属性,因此您仍然会编写getter和setter.你仍然会在另一个地方写下地图信息.
就个人而言,我会使用注释,因为如果需要,可以更容易地找到示例和信息.
Ped*_*iro 19
使用Annotations有一个缺点.由于它们是在注释上定义的(这很奇怪),因此您将无法使用预编译器(如Zend Guard)或某些字节码php缓存扩展来增强代码性能(其中一些会删除注释).由于注释是唯一具有此技术缺陷的规范,因此我不建议使用它.
此外,在评论上写"功能"的东西也很奇怪.
XML比YAML更冗长,但也更广为人知.XML的文档示例是所有选项中最差的.
YAML比其他任何一个都更具可读性,但它也依赖于空间识别(有些人不喜欢).Symfony默认使用YAML进行配置,因此许多使用Symfony的人选择使用YAML作为学说映射 - 这意味着YAML示例已有详细记录,并且有大量资源.
我个人更喜欢YAML.我可以使用doctrine模式工具自动生成实体(这意味着我不必编写getter/setter).我也可以使用预编译器/字节码缓存选项,而不必担心我的注释被删除.
附加信息:
如果您使用的是PHP 7.0或更高版本,opcache.save_comments = 0则在使用注释时无法设置php.ini.PHP有一种本地方式来删除注释,这将破坏您的应用程序.Guilherme Blanco是Doctrine最活跃的维护者之一,也是开发大多数项目(Doctrine,Symfony)使用的注释检索类的人,他已经发表了评论注释(如果你读完整个帖子,你会发现他非常热情)对这个).关于Reddit评论注释的问题也有一些广泛的讨论,大多数人似乎都认为这是一个坏主意.
尽管如此,Symfony的官方最佳实践书建议人们使用Annotations.因此,大多数Symfony捆绑包可能会使用注释作为其元数据格式.
我认为这是一个自己喜欢的问题,我更喜欢注释.
我使用注释,因为如果你想知道一个字段在字段上方的任何信息,否则你必须打开一个新文件并搜索你需要的规则.
最好的方法来解决它创建两个案例.然后你看看你喜欢什么.
| 归档时间: |
|
| 查看次数: |
13088 次 |
| 最近记录: |