/htdocs/symfony/2.0.0pr1/src/vendor/symfony/src/Symfony/Components/Templating/Helper/AssetsHelper.php
https://github.com/pmjones/php-framework-benchmarks · PHP · 180 lines · 79 code · 21 blank · 80 comment · 8 complexity · 88451956447401114f12d78886700a3e MD5 · raw file
- <?php
- namespace Symfony\Components\Templating\Helper;
- /*
- * This file is part of the symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * AssetsHelper is the base class for all helper classes that manages assets.
- *
- * Usage:
- *
- * <code>
- * <img src="<?php echo $this->assets->getUrl('foo.png') ?>" />
- * </code>
- *
- * @package symfony
- * @subpackage templating
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- */
- class AssetsHelper extends Helper
- {
- protected $version;
- protected $baseURLs;
- protected $basePath;
- /**
- * Constructor.
- *
- * @param string $basePath The base path
- * @param string|array $baseURLs The domain URL or an array of domain URLs
- * @param string $version The version
- */
- public function __construct($basePath = null, $baseURLs = array(), $version = null)
- {
- $this->setBasePath($basePath);
- $this->setBaseURLs($baseURLs);
- $this->version = $version;
- }
- /**
- * Gets the version to add to public URL.
- *
- * @return string The current version
- */
- public function getVersion()
- {
- return $this->version;
- }
- /**
- * Sets the version that is added to each public URL.
- *
- * @param string $id The version
- */
- public function setVersion($version)
- {
- $this->version = $version;
- }
- /**
- * Gets the base path.
- *
- * @return string The base path
- */
- public function getBasePath()
- {
- return $this->basePath;
- }
- /**
- * Sets the base path.
- *
- * @param string $basePath The base path
- */
- public function setBasePath($basePath)
- {
- if (strlen($basePath) && '/' != $basePath[0])
- {
- $basePath = '/'.$basePath;
- }
- $this->basePath = rtrim($basePath, '/').'/';
- }
- /**
- * Gets the base URL.
- *
- * @param string $path The path
- *
- * @return string The base URL
- */
- public function getBaseURL($path)
- {
- $count = count($this->baseURLs);
- if (0 === $count)
- {
- return '';
- }
- if (1 === $count)
- {
- return $this->baseURLs[0];
- }
- return $this->baseURLs[fmod(hexdec(substr(md5($path), 0, 10)), $count)];
- }
- /**
- * Gets the base URLs.
- *
- * @return array The base URLs
- */
- public function getBaseURLs()
- {
- return $this->baseURLs;
- }
- /**
- * Sets the base URLs.
- *
- * If you pass an array, the getBaseURL() will return a
- * random one each time it is called.
- *
- * @param string|array $baseURLs The base URLs
- */
- public function setBaseURLs($baseURLs)
- {
- if (!is_array($baseURLs))
- {
- $baseURLs = array($baseURLs);
- }
- $this->baseURLs = array();
- foreach ($baseURLs as $URL)
- {
- $this->baseURLs[] = rtrim($URL, '/');
- }
- }
- /**
- * Returns the public path.
- *
- * @param string $path A public path
- *
- * @return string A public path which takes into account the base path and URL path
- */
- public function getUrl($path)
- {
- if (strpos($path, '://'))
- {
- return $path;
- }
- if (0 !== strpos($path, '/'))
- {
- $path = $this->basePath.$path;
- }
- return $this->getBaseURL($path).$path.($this->version ? '?'.$this->version : '');
- }
- /**
- * Returns the canonical name of this helper.
- *
- * @return string The canonical name
- */
- public function getName()
- {
- return 'assets';
- }
- }