我很难找到是否可以将自定义函数添加到条令类中。
假设我有
use DoctrineORMMapping 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()这样的魔术方法。