如何在自定义magento类中调用静态方法

时间:2010-03-03 09:58:28

标签: php magento static

我在具有静态功能的自定义Magento模型中有自定义模型:

class ABC_Module_Model_ClassName
{
    static public function send ( $something)
    {
         // do something static
    }
}

现在我调用这个函数:

ABC_Module_Model_ClassName::send($something); // works and is nothing wrong with it

为了保持一致性,我想知道Mage是否有一种调用静态方法的内部方法,如下所示:

Mage::getModel('abc/module_className')::send($something); // this is wrong
// or 
Mage::getModel('abc/module_className', send($something)); // with a callback or something

1 个答案:

答案 0 :(得分:5)

鉴于像Mage::getModel()这样的任何方法实际上都会返回该类的实例,您将动态地而不是静态地调用它。例如,您正在$module->staticMethod();而不是Module::staticMethod().

所以你最好的是

  • 将静态方法作为常规函数放置,以便全局可用,
  • 将所有静态方法放在一个类中,并将类命名为Common,这样您就不必输入真正的长名称,
  • 或者只是按照您在问题中的方式静态调用它,例如Module::method()

最后,静态调用方法的唯一方法是通过Class::method()