/vendor/kriswallsmith/assetic/src/Assetic/Asset/GlobAsset.php
PHP | 114 lines | 69 code | 21 blank | 24 comment | 7 complexity | f2c5a1f87e19c33c5678494ca7997dd5 MD5 | raw file
Possible License(s): BSD-3-Clause, BSD-2-Clause, Apache-2.0, LGPL-3.0
- <?php
- /*
- * This file is part of the Assetic package, an OpenSky project.
- *
- * (c) 2010-2012 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\Util\PathUtils;
- use Assetic\Filter\FilterInterface;
- /**
- * 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 = PathUtils::resolvePath($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;
- }
- }