条令类,我可以添加自定义函数吗


Doctrine classes, can I add custom functions?

我很难找到是否可以将自定义函数添加到条令类中。

假设我有

use Doctrine'ORM'Mapping as ORM;
/**
 * Map
 */
class Map
{
     /**
     * @var integer
     */
    private $id;
     /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }
}

在我的类中,我想要一些返回值的自定义函数,这些值本身不需要存储在数据库中,而只是提供对某些值的检查功能。

例如,我想添加一个函数isAboveTen();

function isAboveTen()
   {
   return this->id > 10;
   }

我可以继续这样做吗?还是需要将它们定义为xml文件或注释中的一个特殊字段?

您可以安全地添加处理简单成员类型的函数,如果不添加任何注释,Doctrine将忽略它们。

是否应该避免这样做取决于您的整体架构和编码准则。正如评论中所提到的,实体内部和外部可能都存在逻辑。

但是,您应该记住:

任何实体类的所有持久属性/字段都应该始终是私有的或受保护的,否则延迟加载可能无法按预期工作。如果序列化实体(例如会话),则应保护属性(请参阅下面的序列化部分)。

文档中对此进行了描述。由于您正在访问类中的这些成员,因此不会调用像__get()这样的魔术方法。