【发布时间】:2012-01-20 01:21:32
【问题描述】:
作者根据http://symfony.com/doc/2.0/cookbook/doctrine/reverse_engineering.html生成.xml数据库描述。
但是没有解释这些描述可以用来做什么:无论如何我们都会生成带有注释的 php 类,并且无论.xml 元数据它们都可以工作。
那么,它们是干什么用的?
是否有任何关于常见使用迁移工作流程的“最佳实践”文章?
【问题讨论】:
作者根据http://symfony.com/doc/2.0/cookbook/doctrine/reverse_engineering.html生成.xml数据库描述。
但是没有解释这些描述可以用来做什么:无论如何我们都会生成带有注释的 php 类,并且无论.xml 元数据它们都可以工作。
那么,它们是干什么用的?
是否有任何关于常见使用迁移工作流程的“最佳实践”文章?
【问题讨论】:
XML 映射描述代替了基于注释的映射。您必须在 YAML、XML、注释和 PHP 之间进行选择以进行映射描述...
在官方文档的过程中,第一组生成的.xml文件与第二组相同,但没有命名空间解析。这不能在第一步完成(我猜是实体之间的关系..),所以你需要 2 个步骤。实体生成后,您可以删除第一组 .xml 文件。
【讨论】:
.xml 描述的情况下创建 .php 模型
.xml时不需要单独创建.php实体类,通过php app/console doctrine:generate:entities自动生成。该过程是生成 xml 元数据 > 生成表示元数据的实体。而如果您使用annotation,您基本上会跳过元数据部分并直接配置表示。哪个更好是有争议的,主要是偏好问题,就像.xml vs .yml 用于应用配置。