* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\File; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Finder\Finder; /** * Class InvoiceModelFinder finds invoice model files. */ final class InvoiceModelFinder implements FileFinderInterface { /** * @var array */ private $invoiceModelDirectories; /** * @param array $invoiceModelDirectories */ public function __construct(array $invoiceModelDirectories) { $this->invoiceModelDirectories = $invoiceModelDirectories; } /** * Finds all invoice model files. * * @return array */ public function find() { $directories = $this->invoiceModelDirectories; $filesystem = new Filesystem(); foreach ($directories as $key => $directory) { if (!$filesystem->exists($directory)) { unset($directories[$key]); } } $finder = new Finder(); $finder->files() ->in($directories) ->name('invoice-*.tpl'); $fileNames = []; foreach ($finder as $file) { $fileNames[] = $file->getFilename(); } return $fileNames; } }