‪TYPO3CMS  ‪main
ResourceFileExtensionMatcher.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
21 
26 {
30  protected array ‪$extensions = [];
31 
35  protected array ‪$ignoredExtensions = [];
36 
40  public function ‪setExtensions(array ‪$extensions): self
41  {
42  $this->extensions = array_map(strtolower(...), ‪$extensions);
43 
44  return $this;
45  }
46 
47  public function ‪addExtension(string $extension): self
48  {
49  $this->extensions[] = strtolower($extension);
50 
51  return $this;
52  }
53 
57  public function ‪setIgnoredExtensions(array ‪$ignoredExtensions): self
58  {
59  $this->ignoredExtensions = array_map(strtolower(...), ‪$ignoredExtensions);
60 
61  return $this;
62  }
63 
64  public function ‪addIgnoredExtension(string $ignoredExtension): self
65  {
66  $this->ignoredExtensions[] = strtolower($ignoredExtension);
67 
68  return $this;
69  }
70 
71  public function ‪supports(mixed $item): bool
72  {
73  return $item instanceof ‪File;
74  }
75 
76  public function ‪match(mixed $item): bool
77  {
78  if (!$item instanceof ‪File) {
79  return false;
80  }
81 
82  if (in_array($item->getExtension(), $this->ignoredExtensions, true)) {
83  return false;
84  }
85 
86  if (in_array('*', $this->extensions, true) || in_array($item->getExtension(), $this->extensions, true)) {
87  return true;
88  }
89 
90  return false;
91  }
92 }
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher
Definition: ResourceFileExtensionMatcher.php:26
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\$ignoredExtensions
‪array $ignoredExtensions
Definition: ResourceFileExtensionMatcher.php:35
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\addExtension
‪addExtension(string $extension)
Definition: ResourceFileExtensionMatcher.php:47
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\setIgnoredExtensions
‪setIgnoredExtensions(array $ignoredExtensions)
Definition: ResourceFileExtensionMatcher.php:57
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\match
‪match(mixed $item)
Definition: ResourceFileExtensionMatcher.php:76
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\supports
‪supports(mixed $item)
Definition: ResourceFileExtensionMatcher.php:71
‪TYPO3\CMS\Core\Resource\File
Definition: File.php:26
‪TYPO3\CMS\Filelist\Matcher\MatcherInterface
Definition: MatcherInterface.php:24
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\setExtensions
‪setExtensions(array $extensions)
Definition: ResourceFileExtensionMatcher.php:40
‪TYPO3\CMS\Filelist\Matcher
Definition: Matcher.php:18
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\addIgnoredExtension
‪addIgnoredExtension(string $ignoredExtension)
Definition: ResourceFileExtensionMatcher.php:64
‪TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher\$extensions
‪array $extensions
Definition: ResourceFileExtensionMatcher.php:30