diff --git a/src/Model/ViewModel.php b/src/Model/ViewModel.php index 806db9a0..2b8029e5 100644 --- a/src/Model/ViewModel.php +++ b/src/Model/ViewModel.php @@ -144,8 +144,7 @@ public function __unset($name) return null; } - $variables = $this->getVariables(); - unset($variables[$name]); + unset($this->variables[$name]); } /** diff --git a/src/Renderer/ConsoleRenderer.php b/src/Renderer/ConsoleRenderer.php index 6d2683f5..d4070ef9 100644 --- a/src/Renderer/ConsoleRenderer.php +++ b/src/Renderer/ConsoleRenderer.php @@ -1,35 +1,18 @@ init(); } - public function setResolver(Resolver $resolver) {} + public function setResolver(ResolverInterface $resolver) + { + return $this; + } /** * Return the template engine object @@ -120,15 +103,15 @@ public function getFilterChain() /** * Recursively processes all ViewModels and returns output. * - * @param string|Model $model A ViewModel instance. - * @param null|array|Traversable $values Values to use when rendering. If none + * @param string|ModelInterface $model A ViewModel instance. + * @param null|array|\Traversable $values Values to use when rendering. If none * provided, uses those in the composed * variables container. * @return string Console output. */ public function render($model, $values = null) { - if (!$model instanceof Model) { + if (!$model instanceof ModelInterface) { return ''; } diff --git a/src/Renderer/RendererInterface.php b/src/Renderer/RendererInterface.php index c97355b5..0cb38ec8 100644 --- a/src/Renderer/RendererInterface.php +++ b/src/Renderer/RendererInterface.php @@ -10,8 +10,8 @@ namespace Zend\View\Renderer; -use Zend\View\Model\ModelInterface as Model; -use Zend\View\Resolver\ResolverInterface as Resolver; +use Zend\View\Model\ModelInterface; +use Zend\View\Resolver\ResolverInterface; /** * Interface class for Zend_View compatible template engine implementations @@ -35,16 +35,16 @@ public function getEngine(); /** * Set the resolver used to map a template name to a resource the renderer may consume. * - * @param Resolver $resolver + * @param ResolverInterface $resolver * @return RendererInterface */ - public function setResolver(Resolver $resolver); + public function setResolver(ResolverInterface $resolver); /** * Processes a view script and returns the output. * - * @param string|Model $name The script/resource process, or a view model - * @param null|array|\ArrayAccess Values to use during rendering + * @param string|ModelInterface $nameOrModel The script/resource process, or a view model + * @param null|array|\ArrayAccess $values Values to use during rendering * @return string The script output. */ public function render($nameOrModel, $values = null); diff --git a/test/Model/ViewModelTest.php b/test/Model/ViewModelTest.php index 151d4879..fa4f2859 100644 --- a/test/Model/ViewModelTest.php +++ b/test/Model/ViewModelTest.php @@ -82,6 +82,13 @@ public function testSetVariablesMergesWithPreviouslyStoredVariables() $this->assertEquals(array('foo' => 'bar', 'bar' => 'BAZBAT'), $model->getVariables()); } + public function testCanUnsetVariable() + { + $model = new ViewModel(array('foo' => 'bar')); + $model->__unset('foo'); + $this->assertEquals(array(), $model->getVariables()); + } + public function testCanSetOptionsSingly() { $model = new ViewModel(array(), array('foo' => 'bar'));