• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

liip / LiipImagineBundle / 10701363663

04 Sep 2024 12:11PM UTC coverage: 81.688% (-0.06%) from 81.746%
10701363663

push

github

web-flow
Merge pull request #1610 from liip/cs-fix

apply latest cs fixer

67 of 84 new or added lines in 42 files covered. (79.76%)

2 existing lines in 1 file now uncovered.

2275 of 2785 relevant lines covered (81.69%)

103.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.95
/Binary/Loader/FileSystemLoader.php
1
<?php
2

3
/*
4
 * This file is part of the `liip/LiipImagineBundle` project.
5
 *
6
 * (c) https://github.com/liip/LiipImagineBundle/graphs/contributors
7
 *
8
 * For the full copyright and license information, please view the LICENSE.md
9
 * file that was distributed with this source code.
10
 */
11

12
namespace Liip\ImagineBundle\Binary\Loader;
13

14
use Liip\ImagineBundle\Binary\Locator\LocatorInterface;
15
use Liip\ImagineBundle\Exception\InvalidArgumentException;
16
use Liip\ImagineBundle\Model\FileBinary;
17
use Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface as DeprecatedExtensionGuesserInterface;
18
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface as DeprecatedMimeTypeGuesserInterface;
19
use Symfony\Component\Mime\MimeTypeGuesserInterface;
20
use Symfony\Component\Mime\MimeTypesInterface;
21

22
class FileSystemLoader implements LoaderInterface
23
{
24
    /**
25
     * @var MimeTypeGuesserInterface|DeprecatedMimeTypeGuesserInterface
26
     */
27
    protected $mimeTypeGuesser;
28

29
    /**
30
     * @var MimeTypesInterface|DeprecatedExtensionGuesserInterface
31
     */
32
    protected $extensionGuesser;
33

34
    /**
35
     * @var LocatorInterface
36
     */
37
    protected $locator;
38

39
    /**
40
     * @param MimeTypeGuesserInterface|DeprecatedMimeTypeGuesserInterface $mimeGuesser
41
     * @param MimeTypesInterface|DeprecatedExtensionGuesserInterface      $extensionGuesser
42
     */
43
    public function __construct(
44
        $mimeGuesser,
45
        $extensionGuesser,
46
        LocatorInterface $locator
47
    ) {
48
        if (!$mimeGuesser instanceof MimeTypeGuesserInterface && !$mimeGuesser instanceof DeprecatedMimeTypeGuesserInterface) {
286✔
49
            throw new InvalidArgumentException('$mimeGuesser must be an instance of Symfony\Component\Mime\MimeTypeGuesserInterface or Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface');
13✔
50
        }
51

52
        if (!$extensionGuesser instanceof MimeTypesInterface && !$extensionGuesser instanceof DeprecatedExtensionGuesserInterface) {
273✔
53
            throw new InvalidArgumentException('$extensionGuesser must be an instance of Symfony\Component\Mime\MimeTypesInterface or Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface');
13✔
54
        }
55

56
        if (interface_exists(MimeTypeGuesserInterface::class) && $mimeGuesser instanceof DeprecatedMimeTypeGuesserInterface) {
260✔
NEW
57
            @trigger_error(\sprintf('Passing a %s to "%s()" is deprecated since Symfony 4.3, pass a "%s" instead.', DeprecatedMimeTypeGuesserInterface::class, __METHOD__, MimeTypeGuesserInterface::class), E_USER_DEPRECATED);
×
58
        }
59

60
        if (interface_exists(MimeTypesInterface::class) && $extensionGuesser instanceof DeprecatedExtensionGuesserInterface) {
260✔
NEW
61
            @trigger_error(\sprintf('Passing a %s to "%s()" is deprecated since Symfony 4.3, pass a "%s" instead.', DeprecatedExtensionGuesserInterface::class, __METHOD__, MimeTypesInterface::class), E_USER_DEPRECATED);
×
62
        }
63

64
        $this->mimeTypeGuesser = $mimeGuesser;
260✔
65
        $this->extensionGuesser = $extensionGuesser;
260✔
66
        $this->locator = $locator;
260✔
67
    }
140✔
68

69
    public function find($path)
70
    {
71
        $path = $this->locator->locate($path);
208✔
72
        $mimeType = $this->mimeTypeGuesser instanceof DeprecatedMimeTypeGuesserInterface ? $this->mimeTypeGuesser->guess($path) : $this->mimeTypeGuesser->guessMimeType($path);
169✔
73
        $extension = $this->getExtension($mimeType);
169✔
74

75
        return new FileBinary($path, $mimeType, $extension);
169✔
76
    }
77

78
    private function getExtension(?string $mimeType): ?string
79
    {
80
        if ($this->extensionGuesser instanceof DeprecatedExtensionGuesserInterface) {
169✔
81
            return $this->extensionGuesser->guess($mimeType);
×
82
        }
83

84
        if (null === $mimeType) {
169✔
85
            return null;
×
86
        }
87

88
        return $this->extensionGuesser->getExtensions($mimeType)[0] ?? null;
169✔
89
    }
90
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc