![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/doctrine/orm/src/Tools/Console/ |
<?php declare(strict_types=1); namespace Doctrine\ORM\Tools\Console; use ArrayIterator; use Countable; use Doctrine\Persistence\Mapping\ClassMetadata; use FilterIterator; use ReturnTypeWillChange; use RuntimeException; use function assert; use function count; use function iterator_to_array; use function preg_match; use function sprintf; /** * Used by CLI Tools to restrict entity-based commands to given patterns. * * @link www.doctrine-project.com */ class MetadataFilter extends FilterIterator implements Countable { /** @var mixed[] */ private $filter = []; /** * Filter Metadatas by one or more filter options. * * @param ClassMetadata[] $metadatas * @param string[]|string $filter * * @return ClassMetadata[] */ public static function filter(array $metadatas, $filter) { $metadatas = new MetadataFilter(new ArrayIterator($metadatas), $filter); return iterator_to_array($metadatas); } /** @param mixed[]|string $filter */ public function __construct(ArrayIterator $metadata, $filter) { $this->filter = (array) $filter; parent::__construct($metadata); } /** @return bool */ #[ReturnTypeWillChange] public function accept() { if (count($this->filter) === 0) { return true; } $it = $this->getInnerIterator(); $metadata = $it->current(); foreach ($this->filter as $filter) { $pregResult = preg_match('/' . $filter . '/', $metadata->getName()); if ($pregResult === false) { throw new RuntimeException( sprintf("Error while evaluating regex '/%s/'.", $filter) ); } if ($pregResult) { return true; } } return false; } /** @return ArrayIterator<int, ClassMetadata> */ #[ReturnTypeWillChange] public function getInnerIterator() { $innerIterator = parent::getInnerIterator(); assert($innerIterator instanceof ArrayIterator); return $innerIterator; } /** @return int */ #[ReturnTypeWillChange] public function count() { return count($this->getInnerIterator()); } }