From 59ae967e218457b2ab3d77cb621c0640345f5e9b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Gertz?= Date: Sun, 8 Aug 2021 14:11:20 +0200 Subject: [PATCH] Add context supporting getBaseUrl feature --- Context/NullContext.php | 28 +++++++++++++++++ Context/RequestStackContext.php | 56 +++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 Context/NullContext.php create mode 100644 Context/RequestStackContext.php diff --git a/Context/NullContext.php b/Context/NullContext.php new file mode 100644 index 0000000..9f728cb --- /dev/null +++ b/Context/NullContext.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Rapsys\PackBundle\Context; + +use Symfony\Component\Asset\Context\NullContext as BaseNullContext; + +/** + * {@inheritdoc} + */ +class NullContext extends BaseNullContext { + /** + * Returns the base url + * + * @return string The base url + */ + public function getBaseUrl(): string { + return ''; + } +} diff --git a/Context/RequestStackContext.php b/Context/RequestStackContext.php new file mode 100644 index 0000000..0421de7 --- /dev/null +++ b/Context/RequestStackContext.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Rapsys\PackBundle\Context; + +use Symfony\Component\Asset\Context\RequestStackContext as BaseRequestStackContext; +use Symfony\Component\HttpFoundation\RequestStack; + +/** + * {@inheritdoc} + */ +class RequestStackContext extends BaseRequestStackContext { + //RequestStack instance + private $requestStack; + + //Base path + private $basePath; + + /** + * {@inheritdoc} + */ + public function __construct(RequestStack $requestStack, string $basePath = '', bool $secure = false) { + //Call parent constructor + parent::__construct($requestStack, $basePath, $secure); + + //Set request stack + $this->requestStack = $requestStack; + + //Set base path + $this->basePath = $basePath; + } + + /** + * Returns the base url + * + * @return string The base url + */ + public function getBaseUrl(): string { + //Without request + if (!$request = $this->requestStack->getMasterRequest()) { + //Return base path + return $this->basePath; + } + + //Return base uri + return $request->getSchemeAndHttpHost().$request->getBaseUrl(); + } +} -- 2.41.0