123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?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\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
- */
- public function __construct($globs, $filters = array(), $root = null)
- {
- $this->globs = (array) $globs;
- $this->initialized = false;
-
- parent::__construct(array(), $filters, $root);
- }
-
- 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();
- }
-
- /**
- * Initializes the collection based on the glob(s) passed in.
- */
- private function initialize()
- {
- foreach ($this->globs as $glob) {
- if (false !== $paths = glob($glob)) {
- foreach ($paths as $path) {
- $this->add(new FileAsset($path, array(), $this->getSourceRoot()));
- }
- }
- }
-
- $this->initialized = true;
- }
- }
|