在实体中使用特征有什么缺点?

时间:2015-09-09 09:41:51

标签: symfony doctrine-orm

我刚刚发现我可以使用Traits向我的实体添加一些行为。

我开始玩它,看起来很棒。但在我所有实体实施之前,我有一些问题。

基本上,使用实体中的特征有什么缺点?

因为当我看到这些东西时,我可以有一个特征来管理一个实体可以拥有的每个通用字段(比如名称,描述,id,......)。但最终可能会在一个实体中使用许多特征。

我现在可以解决的缺点是:

  • 我们将依赖另一个包,它将存储我们想要的所有行为
  • 我们需要为映射使用注释(使用yaml,我们需要使用Trait手动创建每个实体的映射),因此我们可以直接在Trait中注释字段(使用yaml,我们需要手动创建使用Trait的每个实体的映射。但是通过使用注释,如果我们想要支持实体和文档,我们将不得不复制一些代码

还有一个更通用的问题:在PHP中使用Trait是否有一些性能影响(无法在网上找到关于它的好资源)?

1 个答案:

答案 0 :(得分:1)

特征在PHP中仍然是一个相对较新的特性,并未在图书馆和框架中广泛使用。

我还没有测试过,但我猜这些特性不会对你的系统性能产生影响。永远记住:你在应用程序代码中写下的任何内容都不会以任何方式影响应用程序的性能,只要你不重复500k次或在你的数据库中发出数百个查询(a.k.a.做一些愚蠢的事情)。

一些特定于特质的捆绑包: