Yapma.
Bu ObjectManager::getInstance()->create()
bir şablonda kullanmak gibidir !
Bunun yerine yardımcıyı yapıcı bağımlılığı olarak alan özel bir Blok kullanın ve yardımcı yöntemi çağıran bir proxy yöntemi ekleyin.
Şablonda:
$block->customMethod()
Blokta:
public function __construct(Path/To/Helper/Class $helperClass, ...other dependencies...)
{
$this->helper = $helperClass;
// ...other assignments and call to parent::__construct()
}
public function customMethod()
{
return $this->helper->customMethod();
}
OOP ilkesinde bu "Demeter Yasası" nı ihlal etmekten kaçınıyor. İş mantığını, şablon yerine blok içinde saklar. Bir yan etki olarak, mantık bloğa taşınırken mantığı daha test edilebilir hale getirir.
Yardımcı sınıflara hangi mantığın konduğuyla ilgili olarak, Magento 2 yardımcılarının çoğunlukla model için olmayan, ancak fiyat biçimlendirmesi (çekirdekte bulunan, ancak Şu anda daha iyi bir örnek düşünmeyin).
di.xml
blok sınıf tipi için tercih kullanarak , bazı düzen yapılandırma tutmak gibi görünüyor . Örneğin sınıf için yapmaya çalıştım\Magento\Catalog\Block\Product\View\Type\Simple
, şablonumuzdadefault.phtml
kullanılan şablon göz ardı edilir. Şu anda neden bir ipucu yok