Source of file GlobAsset.php
Size: 2,648 Bytes - Last Modified: 2013-06-02T00:13:43+02:00
/home/theseer/Downloads/Symfony/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | <?php /* * This file is part of the Assetic package, an OpenSky project. * * (c) 2010-2013 OpenSky Project Inc * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Assetic\Asset; use Assetic\Filter\FilterInterface; use Assetic\Util\VarUtils; /** * A collection of assets loaded by glob. * * @author Kris Wallsmith <kris.wallsmith@gmail.com> */ class GlobAsset extends AssetCollection { private $globs; private $initialized; /** * Constructor. * * @param string|array $globs A single glob path or array of paths * @param array $filters An array of filters * @param string $root The root directory * @param array $vars */ public function __construct($globs, $filters = array(), $root = null, array $vars = array()) { $this->globs = (array) $globs; $this->initialized = false; parent::__construct(array(), $filters, $root, $vars); } public function all() { if (!$this->initialized) { $this->initialize(); } return parent::all(); } public function load(FilterInterface $additionalFilter = null) { if (!$this->initialized) { $this->initialize(); } parent::load($additionalFilter); } public function dump(FilterInterface $additionalFilter = null) { if (!$this->initialized) { $this->initialize(); } return parent::dump($additionalFilter); } public function getLastModified() { if (!$this->initialized) { $this->initialize(); } return parent::getLastModified(); } public function getIterator() { if (!$this->initialized) { $this->initialize(); } return parent::getIterator(); } public function setValues(array $values) { parent::setValues($values); $this->initialized = false; } /** * Initializes the collection based on the glob(s) passed in. */ private function initialize() { foreach ($this->globs as $glob) { $glob = VarUtils::resolve($glob, $this->getVars(), $this->getValues()); if (false !== $paths = glob($glob)) { foreach ($paths as $path) { if (is_file($path)) { $this->add(new FileAsset($path, array(), $this->getSourceRoot())); } } } } $this->initialized = true; } } |