Skip to content

Commit

Permalink
Merge c7c9597 into 4edda5f
Browse files Browse the repository at this point in the history
  • Loading branch information
Numkil committed May 5, 2020
2 parents 4edda5f + c7c9597 commit 8c1af09
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 64 deletions.
6 changes: 3 additions & 3 deletions src/Kunstmaan/FixturesBundle/Builder/MediaBuilder.php
Expand Up @@ -9,7 +9,7 @@
use Kunstmaan\MediaBundle\Helper\File\FileHandler;
use Kunstmaan\MediaBundle\Helper\MimeTypeGuesserFactoryInterface;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
use Symfony\Component\Mime\MimeTypes;

class MediaBuilder implements BuilderInterface
{
Expand All @@ -18,7 +18,7 @@ class MediaBuilder implements BuilderInterface
private $fileHandler;

/**
* @var MimeTypeGuesserInterface
* @var MimeTypes
*/
private $mimeTypeGuesser;

Expand Down Expand Up @@ -65,7 +65,7 @@ public function postBuild(Fixture $fixture)

$filePath = $media->getOriginalFilename();
$data = new File($filePath, true);
$contentType = $this->mimeTypeGuesser->guess($data->getPathname());
$contentType = $this->mimeTypeGuesser->guessMimeType($data->getPathname());

if (method_exists($data, 'getClientOriginalName')) {
$media->setOriginalFilename($data->getClientOriginalName());
Expand Down
14 changes: 5 additions & 9 deletions src/Kunstmaan/MediaBundle/Helper/ExtensionGuesserFactory.php
Expand Up @@ -2,9 +2,8 @@

namespace Kunstmaan\MediaBundle\Helper;

use Kunstmaan\MediaBundle\Helper\File\SVGExtensionGuesser;
use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser;
use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface;
use Symfony\Component\Mime\MimeTypes;
use Symfony\Component\Mime\MimeTypesInterface;

class ExtensionGuesserFactory implements ExtensionGuesserFactoryInterface
{
Expand All @@ -13,13 +12,10 @@ class ExtensionGuesserFactory implements ExtensionGuesserFactoryInterface
*
* NOTE: If you override this, you'll probably still have to register the SVGExtensionGuesser as last guesser...
*
* @return ExtensionGuesserInterface
* @return MimeTypesInterface
*/
public function get()
public function get(): MimeTypesInterface
{
$guesser = ExtensionGuesser::getInstance();
$guesser->register(new SVGExtensionGuesser());

return $guesser;
return new MimeTypes();
}
}
Expand Up @@ -2,12 +2,13 @@

namespace Kunstmaan\MediaBundle\Helper;

use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface;

use Symfony\Component\Mime\MimeTypesInterface;

interface ExtensionGuesserFactoryInterface
{
/**
* @return ExtensionGuesserInterface
* @return MimeTypesInterface
*/
public function get();
public function get(): MimeTypesInterface;
}
13 changes: 6 additions & 7 deletions src/Kunstmaan/MediaBundle/Helper/File/FileHandler.php
Expand Up @@ -10,9 +10,8 @@
use Kunstmaan\MediaBundle\Helper\MimeTypeGuesserFactoryInterface;
use Kunstmaan\UtilitiesBundle\Helper\SlugifierInterface;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\Mime\MimeTypes;

/**
* FileHandler
Expand All @@ -35,12 +34,12 @@ class FileHandler extends AbstractMediaHandler
public $fileSystem;

/**
* @var MimeTypeGuesserInterface
* @var MimeTypes
*/
public $mimeTypeGuesser;

/**
* @var ExtensionGuesserInterface
* @var MimeTypes
*/
public $extensionGuesser;

Expand Down Expand Up @@ -180,12 +179,12 @@ public function prepareMedia(Media $media)
$media->setContent($file);
}

$contentType = $this->mimeTypeGuesser->guess($content->getPathname());
$contentType = $this->mimeTypeGuesser->guessMimeType($content->getPathname());
if ($content instanceof UploadedFile) {
$pathInfo = pathinfo($content->getClientOriginalName());

if (!\array_key_exists('extension', $pathInfo)) {
$pathInfo['extension'] = $this->extensionGuesser->guess($contentType);
$pathInfo['extension'] = $this->extensionGuesser->getExtensions($contentType)[0] ?? '';
}

$media->setOriginalFilename($this->slugifier->slugify($pathInfo['filename']).'.'.$pathInfo['extension']);
Expand Down Expand Up @@ -277,7 +276,7 @@ public function createNew($data)
}
$media->setContent($data);

$contentType = $this->mimeTypeGuesser->guess($media->getContent()->getPathname());
$contentType = $this->mimeTypeGuesser->guessMimeType($media->getContent()->getPathname());
$media->setContentType($contentType);

return $media;
Expand Down
23 changes: 0 additions & 23 deletions src/Kunstmaan/MediaBundle/Helper/File/SVGExtensionGuesser.php

This file was deleted.

14 changes: 7 additions & 7 deletions src/Kunstmaan/MediaBundle/Helper/File/SVGMimeTypeGuesser.php
Expand Up @@ -4,7 +4,7 @@

use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
use Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
use Symfony\Component\Mime\MimeTypeGuesserInterface;

/**
* SVGMimeTypeGuesser
Expand All @@ -21,7 +21,7 @@ class SVGMimeTypeGuesser implements MimeTypeGuesserInterface
/**
* {@inheritdoc}
*/
public function guess($path)
public function guessMimeType(string $path): ?string
{
if (!is_file($path)) {
throw new FileNotFoundException($path);
Expand All @@ -31,14 +31,14 @@ public function guess($path)
throw new AccessDeniedException($path);
}

if (!self::isSupported()) {
return;
if (!$this->isGuesserSupported()) {
return null;
}

$dom = new \DOMDocument();
$xml = $dom->load($path, LIBXML_NOERROR + LIBXML_ERR_FATAL + LIBXML_ERR_NONE);
if ($xml === false) {
return;
return null;
}
$xpath = new \DOMXPath($dom);
foreach ($xpath->query('namespace::*') as $node) {
Expand All @@ -47,15 +47,15 @@ public function guess($path)
}
}

return;
return null;
}

/**
* Returns whether this guesser is supported on the current OS
*
* @return bool
*/
public static function isSupported()
public function isGuesserSupported(): bool
{
return class_exists('DOMDocument') && class_exists('DOMXPath');
}
Expand Down
11 changes: 6 additions & 5 deletions src/Kunstmaan/MediaBundle/Helper/MimeTypeGuesserFactory.php
Expand Up @@ -3,7 +3,8 @@
namespace Kunstmaan\MediaBundle\Helper;

use Kunstmaan\MediaBundle\Helper\File\SVGMimeTypeGuesser;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
use Symfony\Component\Mime\MimeTypes;
use Symfony\Component\Mime\MimeTypesInterface;

class MimeTypeGuesserFactory implements MimeTypeGuesserFactoryInterface
{
Expand All @@ -12,12 +13,12 @@ class MimeTypeGuesserFactory implements MimeTypeGuesserFactoryInterface
*
* NOTE: If you override this, you'll probably still have to register the SVGMimeTypeGuesser as last guesser...
*
* @return MimeTypeGuesser
* @return MimeTypesInterface
*/
public function get()
public function get(): MimeTypesInterface
{
$guesser = MimeTypeGuesser::getInstance();
$guesser->register(new SVGMimeTypeGuesser());
$guesser = new MimeTypes();
$guesser->registerGuesser(new SVGMimeTypeGuesser());

return $guesser;
}
Expand Down
Expand Up @@ -2,12 +2,12 @@

namespace Kunstmaan\MediaBundle\Helper;

use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
use Symfony\Component\Mime\MimeTypesInterface;

interface MimeTypeGuesserFactoryInterface
{
/**
* @return MimeTypeGuesserInterface
* @return MimeTypesInterface
*/
public function get();
public function get(): MimeTypesInterface;
}
Expand Up @@ -6,6 +6,7 @@
use Kunstmaan\MediaBundle\Helper\MimeTypeGuesserFactoryInterface;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\Mime\MimeTypes;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Exception\ConstraintDefinitionException;
Expand All @@ -16,12 +17,12 @@
class HasGuessableExtensionValidator extends ConstraintValidator
{
/**
* @var ExtensionGuesserInterface
* @var MimeTypes
*/
private $extensionGuesser;

/**
* @var MimeTypeGuesserInterface
* @var MimeTypes
*/
private $mimeTypeGuesser;

Expand All @@ -42,10 +43,10 @@ public function validate($value, Constraint $constraint)
return;
}

$contentType = $this->mimeTypeGuesser->guess($value->getPathname());
$contentType = $this->mimeTypeGuesser->guessMimeType($value->getPathname());
$pathInfo = pathinfo($value->getClientOriginalName());
if (!\array_key_exists('extension', $pathInfo)) {
$pathInfo['extension'] = $this->extensionGuesser->guess($contentType);
$pathInfo['extension'] = $this->extensionGuesser->getExtensions($contentType)[0] ?? null;
}

if ($pathInfo['extension'] === null) {
Expand Down

0 comments on commit 8c1af09

Please sign in to comment.