From 3ad0794aa14aa929eb57886973640026ce7f9aa7 Mon Sep 17 00:00:00 2001 From: Tomaz Ahlin Date: Thu, 2 Jul 2015 10:07:17 +0200 Subject: [PATCH] =?UTF-8?q?[DependencyInjection]=20fixed=20FrozenParameter?= =?UTF-8?q?Bag=20and=20improved=20Parameter=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ParameterBag/FrozenParameterBag.php | 8 ++++++++ .../ParameterBag/ParameterBagInterface.php | 7 +++++++ .../Tests/ParameterBag/FrozenParameterBagTest.php | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/src/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php b/src/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php index dc936a0bd671..cb7e481ed23b 100644 --- a/src/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php +++ b/src/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php @@ -69,4 +69,12 @@ public function set($name, $value) { throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); } + + /** + * {@inheritdoc} + */ + public function remove($name) + { + throw new LogicException('Impossible to call remove() on a frozen ParameterBag.'); + } } diff --git a/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php b/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php index 96003547b69f..ead76d738d32 100644 --- a/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php +++ b/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php @@ -11,6 +11,7 @@ namespace Symfony\Component\DependencyInjection\ParameterBag; +use Symfony\Component\DependencyInjection\Exception\LogicException; use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; /** @@ -25,6 +26,8 @@ interface ParameterBagInterface /** * Clears all parameters. * + * @throws LogicException if the ParameterBagInterface can not be cleared + * * @api */ public function clear(); @@ -34,6 +37,8 @@ public function clear(); * * @param array $parameters An array of parameters * + * @throws LogicException if the parameter can not be added + * * @api */ public function add(array $parameters); @@ -66,6 +71,8 @@ public function get($name); * @param string $name The parameter name * @param mixed $value The parameter value * + * @throws LogicException if the parameter can not be set + * * @api */ public function set($name, $value); diff --git a/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php b/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php index e6e7fea2f17a..6d963dc05456 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/FrozenParameterBagTest.php @@ -57,4 +57,13 @@ public function testAdd() $bag = new FrozenParameterBag(array()); $bag->add(array()); } + + /** + * @expectedException \LogicException + */ + public function testRemove() + { + $bag = new FrozenParameterBag(array('foo' => 'bar')); + $bag->remove('foo'); + } }