gpt4 book ai didi

php - 在带有 Doctrine2 的 Symfony2 上,Object = Entity 吗?

转载 作者:可可西里 更新时间:2023-10-31 22:14:48 26 4
gpt4 key购买 nike

假设我有一个 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 目录中的文件(因为这些函数从数据库中更新或选择数据)。

但是 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?

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

关于php - 在带有 Doctrine2 的 Symfony2 上,Object = Entity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8174354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com