8000 [Asset] Provide default context · symfony/symfony@9137d57 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9137d57

Browse files
ro0NLfabpot
authored andcommitted
[Asset] Provide default context
1 parent 3d799dd commit 9137d57

File tree

5 files changed

+36
-3
lines changed

5 files changed

+36
-3
lines changed

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ CHANGELOG
5353
`EventDispatcherDebugCommand`, `RouterDebugCommand`, `RouterMatchCommand`,
5454
`TranslationDebugCommand`, `TranslationUpdateCommand`, `XliffLintCommand`
5555
and `YamlLintCommand` classes have been marked as final
56+
* Added `asset.request_context.base_path` and `asset.request_context.secure` parameters
57+
to provide a default request context in case the stack is empty (similar to `router.request_context.*` parameters)
5658

5759
3.3.0
5860
-----

src/Symfony/Bundle/FrameworkBundle/Resources/config/assets.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
55
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
66

7+
<parameters>
8+
<parameter key="asset.request_context.base_path"></parameter>
9+
<parameter key="asset.request_context.secure">false</parameter>
10+
</parameters>
11+
712
<services>
813
<defaults public="false" />
914

@@ -19,6 +24,8 @@
1924

2025
<service id="assets.context" class="Symfony\Component\Asset\Context\RequestStackContext" public="true">
2126
<argument type="service" id="request_stack" />
27+
<argument>%asset.request_context.base_path%</argument>
28+
<argument>%asset.request_context.secure%</argument>
2229
</service>
2330

2431
<service id="assets.path_package" class="Symfony\Component\Asset\PathPackage" abstract="true" public="true">

src/Symfony/Component/Asset/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
CHANGELOG
22
=========
33

4+
3.4.0
5+
-----
6+
7+
* added optional arguments `$basePath` and `$secure` in `RequestStackContext::__construct()`
8+
to provide a default request context in case the stack is empty
9+
410
3.3.0
511
-----
612
* Added `JsonManifestVersionStrategy` as a way to read final,

src/Symfony/Component/Asset/Context/RequestStackContext.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,19 @@
2121
class RequestStackContext implements ContextInterface
2222
{
2323
private $requestStack;
24+
private $basePath;
25+
private $secure;
2426

25-
public function __construct(RequestStack $requestStack)
27+
/**
28+
* @param RequestStack $requestStack
29+
* @param string $basePath
30+
* @param bool $secure
31+
*/
32+
public function __construct(RequestStack $requestStack, $basePath = '', $secure = false)
2633
{
2734
$this->requestStack = $requestStack;
35+
$this->basePath = $basePath;
36+
$this->secure = $secure;
2837
}
2938

3039
/**
@@ -33,7 +42,7 @@ public function __construct(RequestStack $requestStack)
3342
public function getBasePath()
3443
{
3544
if (!$request = $this->requestStack->getMasterRequest()) {
36-
return '';
45+
return $this->basePath;
3746
}
3847

3948
return $request->getBasePath();
@@ -45,7 +54,7 @@ public function getBasePath()
4554
public function isSecure()
4655
{
4756
if (!$request = $this->requestStack->getMasterRequest()) {
48-
return false;
57+
return $this->secure;
4958
}
5059

5160
return $request->isSecure();

src/Symfony/Component/Asset/Tests/Context/RequestStackContextTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,13 @@ public function testIsSecureTrue()
6161

6262
$this->assertTrue($requestStackContext->isSecure());
6363
}
64+
65+
public function testDefaultContext()
66+
{
67+
$requestStack = $this->getMockBuilder('Symfony\Component\HttpFoundation\RequestStack')->getMock();
68+
$requestStackContext = new RequestStackContext($requestStack, 'default-path', true);
69+
70+
$this->assertSame('default-path', $requestStackContext->getBasePath());
71+
$this->assertTrue($requestStackContext->isSecure());
72+
}
6473
}

0 commit comments

Comments
 (0)
0