Magento,魔术 setter/getter v getData

标签 magento

我已经使用 magento 有一段时间了,总是无法在使用魔法 getter 和 getData() 之间做出决定

除了轻微的性能开销(而且必须非常轻微)之外,有人可以解释主要区别吗?

我在思考:

  • future 代码证明(我认为 magento 2 不会使用魔法 setter/getter )
  • 风格
  • 业绩
  • 稳定性
  • 使用 1 而不是其他的任何其他原因

  • 基于核心代码没有明确的方法,因为它使用了两者的混合

    最佳答案

    没有适合所有情况的答案,最好根据您使用的模型和特定用例来决定。

    魔术方法的性能非常差,以及在每个访问器上从 CamelCase 转换为 under_score 的额外开销。

    无论如何,魔术方法基本上是 getData() 的包装器,具有额外的开销。

    但是,使用魔术方法有一个优点,例如:

    如果您使用 getAttributeName() 而不是 getData('attribute_name')

    在 future 的某个时候,模型可能会更新以包含一个真实的、具体的 getAttributeName() 方法,在这种情况下,您的代码仍然可以正常工作。但是,如果您使用了 getData(),则可以直接访问该属性,并绕过新方法,其中可能包括您要绕过的一些重要计算。

    关于Magento,魔术 setter/getter v getData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440424/

    相关文章:

    php - Magento 插件禁用/启用问题?

    magento - 更新报价项目的权重

    magento - 如何将 magento 的原生验证码用于产品评论页面和联系我们表格

    magento - 如何从不同范围访问 Magento 模型数据

    xml - Wordpress 和 Magento 完全集成的主页帖子的字符/字数限制 (fishpig)

    php - Magento 以编程方式退款

    mysql - 安装 magento,出现数据库连接错误。

    php - Magento 购物车未更新阿拉伯语商店 View 中的数量

    image - 迁移magento网站后未显示产品图片

    php - magento 以编程方式构建类别树