123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Model\ResourceModel\Db\VersionControl;
- use Magento\Framework\Model\AbstractModel;
- use Magento\Framework\Event\ManagerInterface as EventManager;
- /**
- * Class RelationComposite
- */
- class RelationComposite
- {
- /**
- * @var array
- */
- protected $relationProcessors;
- /**
- * @var EventManager
- */
- protected $eventManager;
- /**
- * @param EventManager $eventManager
- * @param array $relationProcessors
- */
- public function __construct(
- EventManager $eventManager,
- array $relationProcessors = []
- ) {
- $this->eventManager = $eventManager;
- $this->relationProcessors = $relationProcessors;
- }
- /**
- * Process model's relations saves
- *
- * @param AbstractModel $object
- * @return void
- */
- public function processRelations(AbstractModel $object)
- {
- foreach ($this->relationProcessors as $processor) {
- /**@var $processor RelationInterface*/
- $processor->processRelation($object);
- }
- $this->eventManager->dispatch(
- $object->getEventPrefix(). '_process_relation',
- [
- 'object' => $object
- ]
- );
- }
- }
|