/**
  * {@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);
 }
Example #2
0
 /**
  * @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;
 }