在Symfony2中,当adding mapping information告诉Doctrine如何将我的实体映射到数据库时,如果我使用YAML或XML格式而不是PHP注释,我如何/在哪里编写getter / setters /其他功能?
答案 0 :(得分:1)
您可以在
中定义实体类方法yml
或xml
中定义映射,并在.php
Symfony docs将元数据直接显示在Product类(选项#1 PHP)内的不同位置src/AppBundle/Entity/Product.php
而不是替代位置(选项#2 YAML和#3 XML)src/AppBundle/Resources/config/doctrine/Product.orm.*ml
。这表明您可以在*ml
中定义映射,在php
中定义getter / setters /其他函数。
请注意,在docs示例中,两个文件中都指定了AppBundle\Entity\Product
。类方法和映射可以独立定义,并且彼此相关为AppBundle\Entity\Product
。
另请注意,this other question具有误导性。即使您使用YAML / XML,也必须编写getter / setter,因为this answer澄清了:
Doctrine需要私有/受保护的属性,所以你仍然是 写吸气剂和二传手。而且你还在编写映射 信息,就在另一个地方。