假设我有一个User
class :
$user = new User(1);
$user->setName('Bob'); // save "bob" to database with ID 1
$user->setGender('Male'); // save "male" to database with ID 1
echo $user->getName(); // display bob
echo $user->getGender(); // display "male";
echo $user->getDesignation() // display "Mr. Bob"
现在,在 Symfony2 和 Doctrine2 中,似乎Entity
是一个用于与数据库建立链接的对象。所以我认为所有setName()
, setGender()
, getName()
& getGender()
函数应该放在一个文件中,该文件位于Entity
Bundle 的目录(因为这些函数从数据库中更新或选择数据)。
但是关于getDesignation()
?
public function getDesignation() {
if ($this->getGender() == 'Male') return "Mr. ".$this->getName();
else return "Ms. ".$this->getName();
}
将与数据库完全没有链接的函数放在实体中可以吗?这不是一个不好的做法吗?
可以放置一个与数据库完全没有联系的函数吗?
是的,没关系。但仔细观察,它仍然在某种程度上与数据库“链接”,因为它使用了最初来自持久层(数据库)的性别和姓名数据。
这不是一个坏习惯吗?
这根本不是坏习惯,事实上这是非常有用的。它可以帮助您利用模型对象中的持久层,同时将代码与数据库访问分离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)