/** * {@inheritdoc} */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); $classOldFashion = $recordToHandle->getValue($this->field); $classNewStyle = $this->classMap->convertClassName($classOldFashion); $class = $classNewStyle ?: $classOldFashion; $recordToHandle->setValue($this->field, $class); }
/** * @param array $data * @return array */ protected function replaceValues(array $data) { foreach ($data as &$value) { if (is_array($value)) { $value = $this->replaceValues($value); } elseif (is_string($value)) { $value = $this->classMap->convertClassName($value); } } return $data; }
/** * @param Record $recordToHandle * @param Record $oppositeRecord * @return mixed */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); $sourceModel = $recordToHandle->getValue($this->field); $oppositeRecordValue = $oppositeRecord->getValue($this->field); if (empty($sourceModel) && !empty($oppositeRecordValue)) { $recordToHandle->setValue($this->field, $oppositeRecord->getValue($this->field)); } elseif (empty($sourceModel)) { $recordToHandle->setValue($this->field, null); } else { $recordToHandle->setValue($this->field, $this->classMap->convertClassName($sourceModel)); } }
/** * @return void */ public function testHandleGetDestination() { /** @var Record|\PHPUnit_Framework_MockObject_MockObject $recordToHandle */ $recordToHandle = $this->getMockBuilder('Migration\\ResourceModel\\Record')->setMethods(['getValue', 'setValue', 'getFields'])->disableOriginalConstructor()->getMock(); /** @var Record|\PHPUnit_Framework_MockObject_MockObject $oppositeRecord */ $oppositeRecord = $this->getMockBuilder('Migration\\ResourceModel\\Record')->disableOriginalConstructor()->setMethods(['getValue'])->getMock(); $oppositeRecord->expects($this->exactly(2))->method('getValue')->will($this->returnValue('Some\\Class\\Name')); $this->classMap->expects($this->never())->method('convertClassName'); $recordToHandle->expects($this->once())->method('getFields')->will($this->returnValue([$this->fieldName])); $recordToHandle->expects($this->once())->method('getValue')->with($this->fieldName)->will($this->returnValue(null)); $recordToHandle->expects($this->once())->method('setValue')->with($this->fieldName, 'Some\\Class\\Name'); $this->handler->handle($recordToHandle, $oppositeRecord); }
/** * Process widget placeholders content * * @param string $content * @return mixed */ protected function processContent($content) { $classSource = []; $classDestination = []; foreach ($this->classMap->getMap() as $classOldFashion => $classNewStyle) { $classSource[] = sprintf('type="%s"', $classOldFashion); $classDestination[] = sprintf('type="%s"', str_replace('\\', '\\\\', $classNewStyle)); } $content = str_replace($classSource, $classDestination, $content); // cut off name of a module from template path $content = preg_replace('/({{widget|{{block)(.*template=")(.*\\/)(.*".*}})/mU', '$1$2$4', $content); return $content; }