En Magento 2, el Varien_Objectequivalente es \Magento\Framework\DataObject.El nombre de la clase se cambió de Object a DataObject porque object es una palabra reservada en PHP 7. Entonces podrías usar algo como:
Esta respuesta pretendía ilustrar una respuesta a la pregunta original de la manera más sucinta posible y no en el contexto de un ejemplo de código real. Aunque sí respondió la pregunta, \Magento\Framework\DataObjectes la nueva Varien_Object, la implementación no fue 100% en línea con las mejores prácticas de Magento 2. Como señaló @MatthiasKleine, la mejor práctica de Magento 2 para crear objetos en su código es usar el marco Magentos DI para inyectar una fábrica en su clase a través del constructor y usar esa fábrica para crear su objeto. Con eso en mente, usar DI para crear un DataObject en su propio código debería verse así:
Esto arroja una advertencia cuando se ejecuta 'phpcs --standard = MEQP2': la creación de instancias de objetos directos (objeto de \ Magento \ Framework \ DataObject) no se recomienda en Magento 2.
Jeroen Vermeulen - MageHost
1
@ JeroenVermeulen-MageHost tiene razón, pero es solo una advertencia , para hacerle saber de un posible error. Para el DataObject, diría que no hay beneficio en la inyección de dependencia y las fábricas. Es solo una variedad glorificada después de todo.
Fabian Schmengler
¿Cómo asignar un valor de matriz múltiple en el objeto? @Andrew
Dhaduk Mitesh
Será mejor usarlo en $obj->setData($item)lugar de De $obj->setItem($item)esta manera, podrá obtener cualquier valor de campo de $objusar el método directamente. Me gusta, $obj->getName()etc.
Patrick W
13
En lugar de crear el objeto con 'nuevo', debe usar DI (Inyección de dependencia) para inyectar la clase Factory y usar esa fábrica para crear nuevas instancias de DataObjects.
De esta manera se forma correcta para la declaración de objeto de datos, cuando se siguen estándar de codificación como MEQP / MEQP2 / PSR etc ... Gracias ...
Bhavik
Muchas gracias -): Funciona de maravilla para mí.
Charvi Parikh
¿Cómo asignar un valor de matriz múltiple en el objeto? @Matthias
DataObject
, diría que no hay beneficio en la inyección de dependencia y las fábricas. Es solo una variedad glorificada después de todo.$obj->setData($item)
lugar de De$obj->setItem($item)
esta manera, podrá obtener cualquier valor de campo de$obj
usar el método directamente. Me gusta,$obj->getName()
etc.En lugar de crear el objeto con 'nuevo', debe usar DI (Inyección de dependencia) para inyectar la clase Factory y usar esa fábrica para crear nuevas instancias de DataObjects.
fuente