/** * @constructor * @param FixtureFactory $fixtureFactory * @param array $params * @param array $data */ public function __construct(FixtureFactory $fixtureFactory, array $params, array $data) { $this->params = $params; if (isset($data['entity'])) { list($type, $entity) = explode('/', $data['entity']); list($fixture, $dataSet) = explode('::', $entity); $this->entity = $fixtureFactory->createByCode($fixture, ['dataSet' => $dataSet]); $this->entity->persist(); $this->data = sprintf("catalog/%s/view/id/%s", $type, $this->entity->getId()); } if (isset($data['custom'])) { $this->data = $data['custom']; } if (isset($data['readyEntity'])) { $this->entity = $data['readyEntity']; } }
/** * @param FixtureFactory $fixtureFactory * @param array $params * @param string $data [optional] */ public function __construct(FixtureFactory $fixtureFactory, array $params, $data = '') { $this->params = $params; if (!isset($data['entity']) || $data['entity'] === '-') { $this->data = $data; return; } preg_match('`%(.*?)%`', $data['entity'], $dataSet); $entityConfig = isset($dataSet[1]) ? explode('::', $dataSet[1]) : []; if (count($entityConfig) > 1) { /** @var FixtureInterface $fixture */ $this->entity = $fixtureFactory->createByCode($entityConfig[0], ['dataSet' => $entityConfig[1]]); $this->entity->persist(); $id = $this->entity->hasData('id') ? $this->entity->getId() : $this->entity->getPageId(); $this->data = preg_replace('`(%.*?%)`', $id, $data['entity']); } else { $this->data = strval($data['entity']); } }