我很难找到是否可以向教条课程添加自定义函数。
让我说我有
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文件或注释中的特殊字段?
答案 0 :(得分:2)
您可以安全地添加处理简单成员类型的函数,如果您不添加任何注释,Doctrine将忽略它们。
您是否应该避免这样做的问题取决于您的整体架构和编码指南。正如评论中所提到的,存在可能在实体内部与实体外部的逻辑的风格。
然而,您应该记住:
任何实体类的所有持久属性/字段应始终为私有或受保护,否则延迟加载可能无法按预期工作。如果您序列化实体(例如Session),则应保护属性(请参阅下面的序列化部分)。
documentation中描述了这一点。由于您正在课堂上访问这些成员,因此不会调用__get()等魔术方法。