Merge branch '2.8' into 3.4
* 2.8: [Form] Fix PHPDoc for FormConfigBuilder $dataClass argument [Security] Update user phpdoc on tokens [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2 suppress side effects in 'get' or 'has' methods of NamespacedAttributeBag [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called [HttpFoundation] Fixed phpdoc for get method of HeaderBag fix typo in ContainerBuilder docblock
This commit is contained in:
commit
2b01d59481
@ -292,6 +292,7 @@ div.sf-toolbar .sf-toolbar-block a:hover {
|
|||||||
border-width: 0;
|
border-width: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 8px;
|
top: 8px;
|
||||||
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sf-toolbar-block .sf-toolbar-icon img + span,
|
.sf-toolbar-block .sf-toolbar-icon img + span,
|
||||||
|
@ -637,10 +637,10 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
|
|||||||
* the parameters passed to the container constructor to have precedence
|
* the parameters passed to the container constructor to have precedence
|
||||||
* over the loaded ones.
|
* over the loaded ones.
|
||||||
*
|
*
|
||||||
* $container = new ContainerBuilder(array('foo' => 'bar'));
|
* $container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
|
||||||
* $loader = new LoaderXXX($container);
|
* $loader = new LoaderXXX($container);
|
||||||
* $loader->load('resource_name');
|
* $loader->load('resource_name');
|
||||||
* $container->register('foo', new stdClass());
|
* $container->register('foo', 'stdClass');
|
||||||
*
|
*
|
||||||
* In the above example, even if the loaded resource defines a foo
|
* In the above example, even if the loaded resource defines a foo
|
||||||
* parameter, the value will still be 'bar' as defined in the ContainerBuilder
|
* parameter, the value will still be 'bar' as defined in the ContainerBuilder
|
||||||
|
@ -138,7 +138,7 @@ class FormConfigBuilder implements FormConfigBuilderInterface
|
|||||||
private $data;
|
private $data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string|null
|
||||||
*/
|
*/
|
||||||
private $dataClass;
|
private $dataClass;
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ class FormConfigBuilder implements FormConfigBuilderInterface
|
|||||||
* Creates an empty form configuration.
|
* Creates an empty form configuration.
|
||||||
*
|
*
|
||||||
* @param string|int $name The form name
|
* @param string|int $name The form name
|
||||||
* @param string $dataClass The class of the form's data
|
* @param string|null $dataClass The class of the form's data
|
||||||
* @param EventDispatcherInterface $dispatcher The event dispatcher
|
* @param EventDispatcherInterface $dispatcher The event dispatcher
|
||||||
* @param array $options The form options
|
* @param array $options The form options
|
||||||
*
|
*
|
||||||
|
@ -101,11 +101,11 @@ class HeaderBag implements \IteratorAggregate, \Countable
|
|||||||
/**
|
/**
|
||||||
* Returns a header value by name.
|
* Returns a header value by name.
|
||||||
*
|
*
|
||||||
* @param string $key The header name
|
* @param string $key The header name
|
||||||
* @param string|string[] $default The default value
|
* @param string|string[]|null $default The default value
|
||||||
* @param bool $first Whether to return the first value or all header values
|
* @param bool $first Whether to return the first value or all header values
|
||||||
*
|
*
|
||||||
* @return string|string[] The first header value or default value if $first is true, an array of values otherwise
|
* @return string|string[]|null The first header value or default value if $first is true, an array of values otherwise
|
||||||
*/
|
*/
|
||||||
public function get($key, $default = null, $first = true)
|
public function get($key, $default = null, $first = true)
|
||||||
{
|
{
|
||||||
|
@ -124,7 +124,13 @@ class NamespacedAttributeBag extends AttributeBag
|
|||||||
|
|
||||||
foreach ($parts as $part) {
|
foreach ($parts as $part) {
|
||||||
if (null !== $array && !array_key_exists($part, $array)) {
|
if (null !== $array && !array_key_exists($part, $array)) {
|
||||||
$array[$part] = $writeContext ? array() : null;
|
if (!$writeContext) {
|
||||||
|
$null = null;
|
||||||
|
|
||||||
|
return $null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$array[$part] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$array = &$array[$part];
|
$array = &$array[$part];
|
||||||
|
@ -141,4 +141,16 @@ class StreamedResponse extends Response
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setNotModified()
|
||||||
|
{
|
||||||
|
$this->setCallback(function () {});
|
||||||
|
|
||||||
|
return parent::setNotModified();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ class ResponseTest extends ResponseTestCase
|
|||||||
|
|
||||||
public function testSetNotModified()
|
public function testSetNotModified()
|
||||||
{
|
{
|
||||||
$response = new Response();
|
$response = new Response('foo');
|
||||||
$modified = $response->setNotModified();
|
$modified = $response->setNotModified();
|
||||||
$this->assertObjectHasAttribute('headers', $modified);
|
$this->assertObjectHasAttribute('headers', $modified);
|
||||||
$this->assertObjectHasAttribute('content', $modified);
|
$this->assertObjectHasAttribute('content', $modified);
|
||||||
@ -135,6 +135,11 @@ class ResponseTest extends ResponseTestCase
|
|||||||
$this->assertObjectHasAttribute('statusText', $modified);
|
$this->assertObjectHasAttribute('statusText', $modified);
|
||||||
$this->assertObjectHasAttribute('charset', $modified);
|
$this->assertObjectHasAttribute('charset', $modified);
|
||||||
$this->assertEquals(304, $modified->getStatusCode());
|
$this->assertEquals(304, $modified->getStatusCode());
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$modified->sendContent();
|
||||||
|
$string = ob_get_clean();
|
||||||
|
$this->assertEmpty($string);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testIsSuccessful()
|
public function testIsSuccessful()
|
||||||
|
@ -82,6 +82,17 @@ class NamespacedAttributeBagTest extends TestCase
|
|||||||
$this->assertEquals($exists, $this->bag->has($key));
|
$this->assertEquals($exists, $this->bag->has($key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider attributesProvider
|
||||||
|
*/
|
||||||
|
public function testHasNoSideEffect($key, $value, $expected)
|
||||||
|
{
|
||||||
|
$expected = json_encode($this->bag->all());
|
||||||
|
$this->bag->has($key);
|
||||||
|
|
||||||
|
$this->assertEquals($expected, json_encode($this->bag->all()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider attributesProvider
|
* @dataProvider attributesProvider
|
||||||
*/
|
*/
|
||||||
@ -96,6 +107,17 @@ class NamespacedAttributeBagTest extends TestCase
|
|||||||
$this->assertEquals('default', $this->bag->get('user2.login', 'default'));
|
$this->assertEquals('default', $this->bag->get('user2.login', 'default'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider attributesProvider
|
||||||
|
*/
|
||||||
|
public function testGetNoSideEffect($key, $value, $expected)
|
||||||
|
{
|
||||||
|
$expected = json_encode($this->bag->all());
|
||||||
|
$this->bag->get($key);
|
||||||
|
|
||||||
|
$this->assertEquals($expected, json_encode($this->bag->all()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider attributesProvider
|
* @dataProvider attributesProvider
|
||||||
*/
|
*/
|
||||||
|
@ -123,4 +123,22 @@ class StreamedResponseTest extends TestCase
|
|||||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
|
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
|
||||||
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
|
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testSetNotModified()
|
||||||
|
{
|
||||||
|
$response = new StreamedResponse(function () { echo 'foo'; });
|
||||||
|
$modified = $response->setNotModified();
|
||||||
|
$this->assertObjectHasAttribute('headers', $modified);
|
||||||
|
$this->assertObjectHasAttribute('content', $modified);
|
||||||
|
$this->assertObjectHasAttribute('version', $modified);
|
||||||
|
$this->assertObjectHasAttribute('statusCode', $modified);
|
||||||
|
$this->assertObjectHasAttribute('statusText', $modified);
|
||||||
|
$this->assertObjectHasAttribute('charset', $modified);
|
||||||
|
$this->assertEquals(304, $modified->getStatusCode());
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$modified->sendContent();
|
||||||
|
$string = ob_get_clean();
|
||||||
|
$this->assertEmpty($string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,14 +77,7 @@ abstract class AbstractToken implements TokenInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the user in the token.
|
* {@inheritdoc}
|
||||||
*
|
|
||||||
* The user can be a UserInterface instance, or an object implementing
|
|
||||||
* a __toString method or the username as a regular string.
|
|
||||||
*
|
|
||||||
* @param string|object $user The user
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
*/
|
||||||
public function setUser($user)
|
public function setUser($user)
|
||||||
{
|
{
|
||||||
|
@ -47,17 +47,22 @@ interface TokenInterface extends \Serializable
|
|||||||
/**
|
/**
|
||||||
* Returns a user representation.
|
* Returns a user representation.
|
||||||
*
|
*
|
||||||
* @return mixed Can be a UserInterface instance, an object implementing a __toString method,
|
* @return string|object Can be a UserInterface instance, an object implementing a __toString method,
|
||||||
* or the username as a regular string
|
* or the username as a regular string
|
||||||
*
|
*
|
||||||
* @see AbstractToken::setUser()
|
* @see AbstractToken::setUser()
|
||||||
*/
|
*/
|
||||||
public function getUser();
|
public function getUser();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a user.
|
* Sets the user in the token.
|
||||||
*
|
*
|
||||||
* @param mixed $user
|
* The user can be a UserInterface instance, or an object implementing
|
||||||
|
* a __toString method or the username as a regular string.
|
||||||
|
*
|
||||||
|
* @param string|object $user The user
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function setUser($user);
|
public function setUser($user);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user