在Doctrine中,mutators和accessors有什么作用?

时间:2009-11-27 06:47:46

标签: doctrine

In this document,它解释了如何在Doctrine中使用mutators和accessors,但没有解释它们是什么。

有人可以解释一下mutator和accessors的作用以及它们是什么吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您可以使用mutators和accessors来实现模型字段的其他行为。基本上他们将价值从一种形式转变为另一种形式。例如,如果你查看Doctrine的文档,他们会指定一个md5Password mutator。 Mutator意味着只要设置字段的值,Doctrine就会调用指定的mutator方法。所以每当你这样做:

$user->password = 'foobar';

Doctrine将调用模型的md5Password(),从而将'foobar'转换为md5('foobar')。简而言之,这可确保密码始终在软件级别进行哈希处理。

Accessor与mutator相反;在读取字段而不是设置字段时会调用它(例如,从数据库中读取行时)。