/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/EntityManager/Operation/Read.php
133 строки
4 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2016 Adobe * All Rights Reserved. */ namespace Magento\Framework\EntityManager\Operation; use Magento\Framework\EntityManager\Operation\Read\ReadMain; use Magento\Framework\EntityManager\Operation\Read\ReadAttributes; use Magento\Framework\EntityManager\Operation\Read\ReadExtensions; use Magento\Framework\EntityManager\HydratorPool; use Magento\Framework\EntityManager\MetadataPool; use Magento\Framework\EntityManager\EventManager; use Magento\Framework\EntityManager\TypeResolver; /** * Class Read */ class Read implements ReadInterface { /** * @var MetadataPool */ private $metadataPool; /** * @var HydratorPool */ private $hydratorPool; /** * @var EventManager */ private $eventManager; /** * @var TypeResolver */ private $typeResolver; /** * @var ReadMain */ private $readMain; /** * @var ReadAttributes */ private $readAttributes; /** * @var ReadAttributes */ private $readExtensions; /** * @param MetadataPool $metadataPool * @param HydratorPool $hydratorPool * @param TypeResolver $typeResolver * @param EventManager $eventManager * @param ReadMain $readMain * @param ReadAttributes $readAttributes * @param ReadExtensions $readExtensions */ public function __construct( MetadataPool $metadataPool, HydratorPool $hydratorPool, TypeResolver $typeResolver, EventManager $eventManager, ReadMain $readMain, ReadAttributes $readAttributes, ReadExtensions $readExtensions ) { $this->metadataPool = $metadataPool; $this->hydratorPool = $hydratorPool; $this->typeResolver = $typeResolver; $this->eventManager = $eventManager; $this->readMain = $readMain; $this->readAttributes = $readAttributes; $this->readExtensions = $readExtensions; } /** * {@inheritDoc} */ public function execute($entity, $identifier, $arguments = []) { $entityType = $this->typeResolver->resolve($entity); $metadata = $this->metadataPool->getMetadata($entityType); $hydrator = $this->hydratorPool->getHydrator($entityType); $this->eventManager->dispatch( 'entity_manager_load_before', [ 'entity_type' => $entityType, 'identifier' => $identifier, 'arguments' => $arguments ] ); $this->eventManager->dispatchEntityEvent( $entityType, 'load_before', [ 'identifier' => $identifier, 'entity' => $entity, 'arguments' => $arguments ] ); $entity = $this->readMain->execute($entity, $identifier); $entityData = array_merge($hydrator->extract($entity), $arguments); if (isset($entityData[$metadata->getLinkField()])) { $entity = $this->readAttributes->execute($entity, $arguments); $entity = $this->readExtensions->execute($entity, $arguments); } $this->eventManager->dispatchEntityEvent( $entityType, 'load_after', [ 'entity' => $entity, 'arguments' => $arguments ] ); $this->eventManager->dispatch( 'entity_manager_load_after', [ 'entity_type' => $entityType, 'entity' => $entity, 'arguments' => $arguments ] ); return $entity; } }