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']); }