示例#1
0
 public function retrieveFormatTools($fileName, ImportHandler $handler, FormatterManager $formatterManager, ArchiveBuilderManager $archiveBuilderManager)
 {
     $nameLength = strlen($fileName);
     $types = $handler->getHandledTypes();
     $formats = $formatterManager->getExtensionsByTypes($types, true) + $archiveBuilderManager->getExtensions(true);
     $uploadFormat = null;
     /** @var \Thelia\Core\FileFormat\Formatting\AbstractFormatter $formatter */
     $formatter = null;
     /** @var \Thelia\Core\FileFormat\Archive\AbstractArchiveBuilder $archiveBuilder */
     $archiveBuilder = null;
     foreach ($formats as $objectName => $format) {
         $formatLength = strlen($format);
         $formatExtension = substr($fileName, -$formatLength);
         if ($nameLength >= $formatLength && $formatExtension === $format) {
             $uploadFormat = $format;
             try {
                 $formatter = $formatterManager->get($objectName);
             } catch (\OutOfBoundsException $e) {
             }
             try {
                 $archiveBuilder = $archiveBuilderManager->get($objectName);
             } catch (\OutOfBoundsException $e) {
             }
             break;
         }
     }
     $this->checkFileExtension($fileName, $uploadFormat);
     return array("formatter" => $formatter, "archive_builder" => $archiveBuilder, "extension" => $uploadFormat, "types" => $types);
 }
示例#2
0
 /**
  * @expectedException \OutOfBoundsException
  */
 public function testDeleteNotExistingFormatter()
 {
     $this->manager->delete("foo");
 }