ในวีโอไอพี 2 Varien_Object
เทียบเท่า\Magento\Framework\DataObject.
ชื่อคลาสก็เปลี่ยนจากวัตถุที่จะ DataObject เนื่องจากวัตถุเป็นคำสงวนPHP 7
ใน ดังนั้นคุณสามารถใช้สิ่งที่ชอบ:
$obj = new \Magento\Framework\DataObject();
$obj->setItem($item);
อัปเดต 2018
คำตอบนี้มีวัตถุประสงค์เพื่อแสดงคำตอบของคำถามต้นฉบับด้วยวิธีที่รวบรัดที่สุดและไม่ได้อยู่ในบริบทของตัวอย่างรหัสจริง ถึงแม้ว่ามันจะตอบคำถามได้ แต่\Magento\Framework\DataObject
เป็นของใหม่Varien_Object
การใช้งานไม่ได้ 100% สอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดของ Magento 2 ตามที่ @MatthiasKleine ชี้ให้เห็นว่าวิธีที่ดีที่สุดในการสร้างวัตถุในโค้ดของคุณคือการใช้เฟรมเวิร์ก Magentos DI เพื่อฉีดโรงงานเข้าไปในห้องเรียนของคุณผ่านทางตัวสร้างและใช้โรงงานเพื่อสร้างวัตถุของคุณ เมื่อพิจารณาแล้วการใช้ DI เพื่อสร้าง DataObject ในรหัสของคุณเองควรมีลักษณะดังนี้:
namespace My/Module;
class Example {
private $objectFactory;
public function __construct(
\Magento\Framework\DataObjectFactory $objectFactory
) {
$this->objectFactory = $objectFactory;
parent::__construct();
}
public function doSomething($item)
{
$obj = $this->objectFactory->create();
$obj->setData('item', $item);
//or
$obj->setItem($item);
}
}