Finder/Finder.php

Summary

Maintainability
A
25 mins
Test Coverage
<?php

namespace Yoghi\Bundle\MaddaBundle\Finder;

use Psr\Log\LoggerInterface;

class Finder
{
    private $files;

    /**
     * [$logger description]
     *
     * @var \Psr\Log\LoggerInterface
     */
    private $logger;

    public function __construct()
    {
        $this->files = [];
    }

    /**
     * [search description]
     *
     * @param string $dir       search directory
     * @param string $extension extension to find, Ex: yml, php, raml
     */
    public function search($dir, $extension)
    {
        if (isset($this->logger)) {
            $this->logger->info('Finder invocato su directory : '.$dir);
        }
        $rdi = new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS);
        $rit = new \RecursiveIteratorIterator($rdi);

        foreach ($rit as $file) {
            if (isset($this->logger)) {
                $this->logger->debug('Valuto file', ['filename' => $file]);
            }
            if (pathinfo($file, PATHINFO_EXTENSION) == $extension) {
                $this->files[] = $file;
            }
        }
    }

    public function setLogger(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    public function getFindedFiles()
    {
        return $this->files;
    }
}