for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* @author Gerard van Helden <[email protected]>
* @copyright Zicht Online <http://zicht.nl>
*/
namespace Zicht\Bundle\UrlBundle\Url;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
* This provider is "request aware", so it can either render absolute URL's
class RequestAwareProvider extends DelegatingProvider
{
* Constructor
*
* @param \Symfony\Component\HttpFoundation\Request $request
public function __construct(Request $request)
parent::__construct();
$this->baseUrl = $request->getBaseUrl();
baseUrl
$this->prefix = $request->getSchemeAndHttpHost() . $this->baseUrl;
prefix
$this->baseUrlLen = strlen($this->baseUrl);
baseUrlLen
}
* @{inheritDoc}
public function url($object, array $options = array(), $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
$ret = parent::url($object, $options, $referenceType);
if ($this->baseUrlLen && substr($ret, 0, $this->baseUrlLen) == $this->baseUrl) {
$ret = substr($ret, $this->baseUrlLen);
$ret = ltrim($ret, '/');
if (!empty($options['absolute'])) {
$ret = $this->prefix . '/' . $ret;
return $ret;