加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在Sytrfony2上使用Doctrine2,Object = Entity吗?

发布时间:2020-12-13 17:39:48 所属栏目:PHP教程 来源:网络整理
导读:假设我有一个User类: $user = new User(1);$user-setName('Bob'); // save "bob" to database with ID 1$user-setGender('Male'); // save "male" to database with ID 1echo $user-getName(); // display bobecho $user-getGender(); // display "male";ec
假设我有一个User类:

$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()函数应该进入Bundle的Entity目录中的文件(因为那些函数来自数据库的UPDATE或SELECT数据).

但是getDesignation()呢?

public function getDesignation() {
  if ($this->getGender() == 'Male') return "Mr. ".$this->getName();
  else return "Ms. ".$this->getName();
}

可以在实体中放置一个与数据库完全没有链接的函数吗?这不是一个坏习惯吗?

解决方法

Is it OK to put a function which has absolutely no link with the database?

是的,没关系.但仔细观察,它仍然在某种程度上与数据库“链接”,因为它利用了最初来自持久层(数据库)的性别和名称数据.

Is it not a bad practice?

这根本不是不好的做法,事实上它是非常有用的.它可以帮助您在模型对象中使用持久层,同时将代码与数据库访问分离.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读