【发布时间】:2013-01-15 20:07:53
【问题描述】:
我想知道是否可以避免对 Symfony 2 实体使用 getter 和 setter。虽然 php app/console 学说:generate:entities 很有帮助,但是对于一个字段很多的实体来说,行代码似乎增加了很多
【问题讨论】:
-
Doctrine 不能正确处理公共属性,因为它不能对它们进行延迟加载。
标签: symfony
我想知道是否可以避免对 Symfony 2 实体使用 getter 和 setter。虽然 php app/console 学说:generate:entities 很有帮助,但是对于一个字段很多的实体来说,行代码似乎增加了很多
【问题讨论】:
标签: symfony
您可以将属性的可见性从 protected 或 private 定义为 public,以便您现在可以通过以下方式访问它们:
// on entity
public $someProp;
// On your code
$someEntity->someProp = someValue;
这不是一个好的 OOP 实践,应该避免,如果你想要干净和安全的代码,getter 和 setter 是一种选择。
【讨论】:
如果跳过 getter 和 setter,您的代码将无法正常工作。 尤其是当您使用不同的实体进行映射时。
Doctrine 在存储和获取信息期间使用 getter 和 setter 填充各种成员字段
对 Entity 中的每个属性都使用 public 是非常糟糕的做法。 而且你最终会浪费大量时间将属性更改为公共,因为 doctinr 在自动生成代码时使用 proted
【讨论】: