Özel bir magento sınıfında statik yöntemi çağırmak için nasıl

1 Cevap php

Bir statik bir fonksiyonu olan bir özel Magento modelinde özel bir model vardır:

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

Şimdi ben böyle işlevini çağırın:

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

Daha tutarlılık amaçlar için, ben Mage statik yöntemlerini çağırarak bir iç yol, böyle bir şey olup olmadığını bilmek istiyorum:

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

1 Cevap

Gibi herhangi bir yöntem Mage::getModel() aslında sınıfının bir örneğini dönecektir göz önüne alındığında, dinamik yerine statik daha bunu çağırıyor olacak. Mesela sen $module->staticMethod(); yerine yapıyor olurdum Module::staticMethod()..

Bu yüzden en iyi en iyi olduğunu

  • ya bu dünyada mevcut olacak kadar normal bir fonksiyonu olarak statik yöntem koymak,
  • Bir sınıfa tüm statik yöntemler koymak ve Common gibi bir şey sınıf isim yüzden gerçekten uzun adını yazmak zorunda olmayacak,
  • ya da sadece senin soru örn Module::method() yaptık yolu statik diyoruz.

Sonunda, bir yöntemi çağırmak için tek yolu statik Class::method() üzerinden.