From 7f448a1d35f89822c1da538dfc9c24539ce4aaab Mon Sep 17 00:00:00 2001 From: Juan Basso Date: Sun, 31 Oct 2010 22:02:26 -0200 Subject: [PATCH] Allowed the use of empty() and isset() in Controllers aliases properties. --- cake/libs/controller/controller.php | 18 ++++++++++++++++++ .../cases/libs/controller/controller.test.php | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/cake/libs/controller/controller.php b/cake/libs/controller/controller.php index 6b213f339f0..5e6469dc7b4 100644 --- a/cake/libs/controller/controller.php +++ b/cake/libs/controller/controller.php @@ -327,6 +327,24 @@ public function __construct($request = null) { parent::__construct(); } +/** + * Provides backwards compatbility avoid problems with empty and isset to alias properties. + * + * @return void + */ + public function __isset($name) { + switch ($name) { + case 'base': + case 'here': + case 'webroot': + case 'data': + case 'action': + case 'params': + return true; + } + return false; + } + /** * Provides backwards compatbility access to the request object properties. * Also provides the params alias. diff --git a/cake/tests/cases/libs/controller/controller.test.php b/cake/tests/cases/libs/controller/controller.test.php index 04a83271113..6a2a3b33282 100644 --- a/cake/tests/cases/libs/controller/controller.test.php +++ b/cake/tests/cases/libs/controller/controller.test.php @@ -1543,6 +1543,11 @@ function testPropertyBackwardsCompatibility() { $this->assertEquals($request->here, $Controller->here); $this->assertEquals($request->action, $Controller->action); + $this->assertFalse(empty($Controller->data)); + $this->assertTrue(isset($Controller->data)); + $this->assertTrue(empty($Controller->something)); + $this->assertFalse(isset($Controller->something)); + $this->assertEquals($request, $Controller->params); $this->assertEquals($request->params['controller'], $Controller->params['controller']); }