Kapalı sıkı sıkıya başka Magento 2'de bir yorum
Hesaplanmış bir değer paylaşmanız gerekiyorsa, hesaplama davranışını nesneye ayırın ve bu değeri gerektiren bloklardan çağırın. Kayıt defteri önerilmez çünkü küresel değişebilir durumdur ve oradan ne alacağınızdan asla emin olamazsınız.
Magento 2'de değişmez durumdaki bir Nesne yaratmanın bir yolu var mı? Kayıt (kullanma Magento\Framework\Registry
nedeniyle önerilmez) küresel değişken devlet var (her ne kadar, tahminen çünkü register
yöntemi varolan bir anahtarı değiştirmesine izin vermez, sen yapabilirsiniz Ayarını iptal etmek ve daha sonra bu anahtarı reset).
Ancak - Magento 2 herhangi bir nesne için aynı sorun var. Bir nesne oluşturmak olsaydım
namespace Pulsestorm\Helloworld\Model;
use Magento\Framework\DataObject;
class ViewVars extends DataObject
{
}
Daha sonra otomatik kurucu bağımlılığı enjeksiyonu herkesin bu paylaşılan nesneyi yakalamasını sağlar. Nesne paylaşılmazsa, görünüm / blok onu yakalayamaz.
Teorik olarak,
namespace Pulsestorm\Helloworld\Model;
class ViewVars
{
protected $_data=false;
protected function setData($data)
{
if($_data)
{
throw new Exception("Immutable");
}
$this->_data = $data;
}
public function getData()
{
return $this->_data;
}
}
Ancak bu, bir görünüm için bireysel değişkenler ayarlamak kadar yaygın bir görev için çok fazla iş gibi görünüyor . Magento 2'de farkında olmadığım değişmez veri nesneleri oluşturmak için daha iyi bir yol var mı?