Magento 2'de, $this
değişken artık bir şablonun blok nesnesine atıfta bulunmaz. Bir şablon sınıfını ifade eder.
Magento\Framework\View\TemplateEngine\Php
Bununla birlikte, bu şablon sınıfının bir geçiş __call
yöntemi vardır
#File: vendor/magento/framework/View/TemplateEngine/Php.php
public function __call($method, $args)
{
return call_user_func_array([$this->_currentBlock, $method], $args);
}
Herhangi bir yöntem çağrısının gerçek bloğa ulaşmasını sağlayan bu. Bu ayrıca, neden korunan yöntemleri phtml
şablonlardan arayamadığınızı da açıklar .
Buna ek olarak, her (bence?) Şablonun üst blok nesnesini de ifade eden, $block
popülasyon adında bir değişken vardır . Bunu Magento'nun liste şablonunda görebilirsiniz.
#File: vendor/magento/module-catalog/view/frontend/templates/product/list.phtml
//...
$_productCollection = $block->getLoadedProductCollection();
nerede $block
değişken kullanılır, ancak açıkça tanımlanmış hiçbir zaman.
Yukarıda belirtilen farklılıklar dışında, bir tekniği diğerine göre kullanmak arasında bir fark var mı? yani Do hem $block
ve $this->currentBlock
aynı nesneyi?