Magento 2.1: usando el administrador de la entidad

27

Desde 2.1 Magento ha introducidoMagento/Framework/Model/EntityManager

Puedo estar equivocado aquí, pero según tengo entendido, es reemplazar lo Magento/Framework/Model/AbstractModelque estaba implementando la característica a través de la herencia y resolver esto a través de la composición (FYI: https://en.m.wikipedia.org/wiki/Composition_over_inheritance )

Puede obtener un ejemplo aquí en los archivos principales: https://github.com/magento/magento2/blob/59671558ecdab652b40db2d1a7c63d5b1dea0a92/app/code/Magento/Cms/Model/ResourceModel/Block.php

Básicamente, todas las operaciones CRUD se declaran explícitamente en la clase y se difieren a la EntityManagerclase. Antes de 2.1, el método padre se llamaba por herencia.

Entonces mis preguntas son:

  • ¿Cuáles son los beneficios delEntityManager sistema de herencia anterior al 2.1?
  • es simplemente declarar los métodos CRUD (como el ejemplo anterior) lo suficiente como para comenzar a implementarlo en un módulo CRUD personalizado o ¿hay más?
Raphael en Digital Pianism
fuente
1
No es una respuesta, pero me arriesgaría a que uno de los beneficios de usar un EntityManager sería la posibilidad de una posible inyección de un sistema de tipo Repositorio, donde la carga podría ocurrir en la memoria en lugar de golpear la base de datos si la entidad ya hubiera sido ingresada memoria, etc.
Navarr

Respuestas:

16

Actualmente, no recomendamos utilizar EntityManager para sus entidades, ya que es una característica inacabada y planeamos hacer que la configuración sea más declarativa.

Las ideas de EntityManager son:

  • Permitir persistir la entidad de datos por la interfaz (no es necesario extender desde clases abstractas)
  • hacer persistente explícito extensible
  • modularidad
Kandy
fuente
Gracias por eso, ¿podría agregar a su respuesta la razón por la que no recomienda usarlo? (¿Función inacabada, buggy, otra?)
Raphael en Digital Pianism
1
Sí, futuros sin terminar, planeamos hacer que la configuración sea más declarativa
KAndy
44
Moar XMLs, MOAR! :)
nevvermind
¿Podríamos saber cuál es la fecha esperada en que terminarán estos futuros inacabados?
Toan Nguyen
3
Debido a que el backlog de Magento directamente afectado por la retroalimentación de la comunidad y los socios, cualquier tarea puede priorizarse y desestabilizarse, y nadie sabe cuándo se terminará la tarea concreta, antes de que se realice y se publique.
KAndy