การถอดความคิดเห็นออกจากMagento 2 อื่น
หากคุณต้องการแชร์ค่าที่คำนวณได้ให้วางพฤติกรรมการคำนวณเพื่อแยกวัตถุและเรียกมันจากบล็อกที่ต้องใช้ค่านั้น รีจิสทรีไม่ได้รับการสนับสนุนเนื่องจากเป็นสถานะที่ไม่แน่นอนในระดับโลกและคุณไม่แน่ใจว่าจะได้รับสิ่งใดจากที่นั่น
มีวิธีในการสร้าง Object ใน Magento 2 ด้วยสภาพที่ไม่เปลี่ยนรูปแบบหรือไม่? การใช้งานรีจิสตรี ( Magento\Framework\Registry
) ไม่ได้รับการสนับสนุนเนื่องจากเป็นสถานะที่ไม่แน่นอนทั่วโลก (สันนิษฐานได้เพราะแม้ว่าregister
วิธีการนี้จะไม่อนุญาตให้คุณเปลี่ยนรหัสที่มีอยู่ แต่คุณสามารถยกเลิกการตั้งค่าและรีเซ็ตคีย์นั้นได้)
อย่างไรก็ตาม - ปัญหาเดียวกันนี้มีอยู่สำหรับวัตถุใด ๆ ใน Magento 2 หากฉันต้องการสร้างวัตถุ
namespace Pulsestorm\Helloworld\Model;
use Magento\Framework\DataObject;
class ViewVars extends DataObject
{
}
จากนั้นการสร้างการพึ่งพาการสร้างอัตโนมัติช่วยให้มั่นใจว่าทุกคนสามารถคว้าวัตถุที่ใช้ร่วมกันได้ หากวัตถุนั้นไม่ได้ใช้งานร่วมกันมุมมอง / บล็อกจะไม่สามารถคว้าได้
ในทางทฤษฎีเราสามารถทำอะไรบางอย่างเช่น
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;
}
}
แต่ดูเหมือนว่าการทำงานมากสำหรับงานเป็นสามัญเป็นการตั้งค่าตัวแปรแต่ละมุมมองหนึ่ง Magento 2 มีวิธีที่ดีกว่าในการสร้างออบเจ็กต์ข้อมูลที่เปลี่ยนแปลงไม่ได้หรือไม่?