我已经使用magento已有一段时间了,始终无法在使用Magic getter和getData()之间做出选择。

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

我在想:

  • 将来的代码证明(我认为magento 2将不会使用魔术 setter/getter )
  • 风格
  • 性能
  • 稳定性
  • 与其他
  • 相比使用1的任何其他原因

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

    最佳答案

    我认为,最安全的方法是始终使用getData($key)。神奇的 getter 使用的方法与您已经指出的相同。
    好处是您可以在代码中找到对getData的所有引用,并在重构getData()方法的情况下适本地对其进行更改。与之相比,必须找出所有魔术方法调用(它们总是以不同的方式命名)。
    第二件事是,当您拥有一个以相同方式命名的方法时(我认为getName()让我获得了一次,并且调试花费了相当长的时间),魔术 getter 可以轻松地将您搞砸。
    因此,我的投票肯定是使用getData()的。

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

    10-12 06:22