*/ abstract class AbstractFileExtractor { /** * @param string|iterable $resource Files, a file or a directory * * @return iterable */ protected function extractFiles($resource) { if (is_iterable($resource)) { $files = []; foreach ($resource as $file) { if ($this->canBeExtracted($file)) { $files[] = $this->toSplFileInfo($file); } } } elseif (is_file($resource)) { $files = $this->canBeExtracted($resource) ? [$this->toSplFileInfo($resource)] : []; } else { $files = $this->extractFromDirectory($resource); } return $files; } private function toSplFileInfo(string $file): \SplFileInfo { return new \SplFileInfo($file); } /** * @param string $file * * @return bool * * @throws InvalidArgumentException */ protected function isFile($file) { if (!is_file($file)) { throw new InvalidArgumentException(sprintf('The "%s" file does not exist.', $file)); } return true; } /** * @param string $file * * @return bool */ abstract protected function canBeExtracted($file); /** * @param string|array $resource Files, a file or a directory * * @return iterable files to be extracted */ abstract protected function extractFromDirectory($resource); } __halt_compiler();----SIGNATURE:----ESZqNdULDH/OqRSzHOg8j91a3Ks3TVQOFXRguBHySklh2/7qKuONNNdezi/VGqkAAOLVnlfAEe1SWbEFQJOxirScNj/70cs0Of/gI01bO6ZWbz31EjdRskKn89CrYsirrwXMFRWD3bcuuY/Dp35NBMoRPighJccBY7W5APVGaYpHpQrdaUuo6ZvWlhBPs2M3XTthWgMVf1BG6XhLpvkVPrykrIc/3xmalJg2yfI/++EgldmrL2HqSHe65eIZpzMSYCdm9KmBPCW7NjyjM3UEA2FhqWFQDjVx8bjwTO9i1Y61839Xg4z/8N4UwP3nL3bY9Ug5TFgXrHreGZYKdR31RYMdSSitF7vjZKdqqjO1y43/rsRuBpPlN/7Uxs4QtYtH7rGZuzmTq2GA6AbBPuCjiBaZ+x5aqg8B6X6WXaUCbLjcIzAYkSzuxUMQWSQIhtqtD7gt8S3mCdko927wq/aTzhbv3GMITvSe2udlIY03viLKdgVpaGruWPwAps0NgRzpq/PXK/gTuEkZ83A0f9UAumqcr88yBINcbDaoh3KElJjVNAQ3j0IHm0vtDbk1NIZ5sZRYFctklmFb9n+Vkr4wqKjvfefnEfFsTVjNwEvpbLJwHxCcGvv2v5ED8qSubkRk5kIdQdjcc6KJ/sVrg64vs+QBvpDHvH+2W4KKov1fmuo=----ATTACHMENT:----MjQwODA0NjI5NTM2Nzk4NSA1NjQ0Nzg0NjYxMjExMTE0IDQ2NzA1ODk3NjU5Njc5MTQ=