<?php
declare(strict_types=1);
/*
* This file is part of the Symfony framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Symfony\Bundle\AsseticBundle\Factory\Resource;
use Assetic\Factory\Resource\DirectoryResource as BaseDirectoryResource;
use Symfony\Component\Templating\Loader\LoaderInterface;
/**
* A directory resource that creates Symfony2 templating resources.
*
* @author Kris Wallsmith <kris@symfony.com>
*/
class DirectoryResource extends BaseDirectoryResource
{
protected \Symfony\Component\Templating\Loader\LoaderInterface $loader;
protected $bundle;
protected $path;
/**
* Constructor.
*
* @param LoaderInterface $loader The templating loader
* @param string $bundle The current bundle name
* @param string $path The directory path
* @param string $pattern A regex pattern for file basenames
*/
public function __construct(LoaderInterface $loader, $bundle, $path, $pattern = null)
{
$this->loader = $loader;
$this->bundle = $bundle;
$this->path = rtrim($path, '/').'/';
parent::__construct($path, $pattern);
}
#[\Override]
public function getIterator(): \Traversable
{
return is_dir($this->path)
? new DirectoryResourceIterator($this->loader, $this->bundle, $this->path, $this->getInnerIterator())
: new \EmptyIterator();
}
}