【发布时间】:2013-03-16 10:58:19
【问题描述】:
我正在使用 Enterprise Architect 制作 UML 类图并使用它生成 PHP5 代码。使用this,可以为属性创建getter 和setter,在代码中如下所示(仅显示相关行):
private $id;
public function getId()
{
return $this->id;
}
/**
*
* @param newVal
*/
public function setId($newVal)
{
$this->id = $newVal;
}
我想使用魔术方法__get($property) 和__set($property, $value),而不是为每个属性使用单独的方法。有可能吗,如果有,怎么做?
对于 getter,它可能看起来像这样:
public function __get($property)
{
switch ($property) {
case 'id': return $this->id; break;
default: return null;
}
}
【问题讨论】:
-
您的意思是是否以及如何告诉 ea 不要生成这些方法?
-
不,我希望 EA 创建它们。
-
@Furgas 教会我私有或受保护的财产是一个很好的做法。为什么?例如:stackoverflow.com/a/8955492/1544337
-
@Furgas 这是个好主意!您可以将此添加为答案,我可能会接受它(尽管这是一种解决方法而不是答案),除非出现真实/更好的答案。
标签: php uml getter-setter enterprise-architect magic-methods