Skip to content

Instantly share code, notes, and snippets.

@Ocramius
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ocramius/b140bae2d8b948c82382 to your computer and use it in GitHub Desktop.
Save Ocramius/b140bae2d8b948c82382 to your computer and use it in GitHub Desktop.
--TEST--
Verifies that generated access interceptors disallow private property direct read
--FILE--
Fatal error: Cannot access private property Kitchen::$sweets in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php on line 127
Call Stack:
0.0002 229992 1. {main}() /Users/ocramius/Documents/Projects/ProxyManager/tests/language-feature-scripts/access-interceptor-denies-private-property-read.phpt:0
0.0251 2178640 2. ProxyManagerGeneratedProxy\__PM__\Kitchen\Generated8d074ecba2008676c49d352470371679->__get() /Users/ocramius/Documents/Projects/ProxyManager/tests/language-feature-scripts/access-interceptor-denies-private-property-read.phpt:17
0.0252 2183680 3. ProxyManager\Stub\EmptyClassStub->ProxyManagerGeneratedProxy\__PM__\Kitchen\{closure}() /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php:132
--TEST--
Verifies that generated access interceptors disallow private property direct read
--FILE--
Fatal error: Uncaught Error: Cannot access private property Kitchen::$sweets in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php:127
Stack trace:
#0 /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php(132): ProxyManager\Stub\EmptyClassStub->ProxyManagerGeneratedProxy\__PM__\Kitchen\{closure}()
#1 /Users/ocramius/Documents/Projects/ProxyManager/tests/language-feature-scripts/access-interceptor-denies-private-property-read.phpt(17): ProxyManagerGeneratedProxy\__PM__\Kitchen\Generated8d074ecba2008676c49d352470371679->__get('sweets')
#2 {main}
Next Error: Cannot access private property Kitchen::$sweets in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php:127
Stack trace:
#0 /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenera in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated8d074ecba2008676c49d352470371679.php on line 127
Failed asserting that format description matches text.
--- Expected
+++ Actual
@@ @@
Fatal error: Uncaught Error: Cannot access private property Kitchen::$sweets in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated9c8ce22332d3d853452cfe6058c07ed8.php:191
+Stack trace:
+#0 /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated9c8ce22332d3d853452cfe6058c07ed8.php(196): ProxyManager\Stub\EmptyClassStub->ProxyManagerGeneratedProxy\__PM__\Kitchen\{closure}()
+#1 -(14): ProxyManagerGeneratedProxy\__PM__\Kitchen\Generated9c8ce22332d3d853452cfe6058c07ed8->__get('sweets')
+#2 {main}
+
+Next Error: Cannot access private property Kitchen::$sweets in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated9c8ce22332d3d853452cfe6058c07ed8.php:191
+Stack trace:
+#0 /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated9c8ce22332d3d853452cfe6058c07ed8.php(196): ProxyManager\Stub\EmptyClassStub->ProxyManagerGeneratedProxy\__PM__\Kitchen\{closure in /Users/ocramius/Documents/Projects/ProxyManager/tmp/ProxyManagerGeneratedProxy__PM__KitchenGenerated9c8ce22332d3d853452cfe6058c07ed8.php on line 191
--TEST--
Verifies that generated access interceptors disallow private property direct read
--FILE--
<?php
require_once __DIR__ . '/init.php';
class Kitchen
{
private $sweets;
}
$factory = new \ProxyManager\Factory\AccessInterceptorValueHolderFactory($configuration);
$proxy = $factory->createProxy(new Kitchen());
$proxy->sweets;
?>
--EXPECTF--
%SFatal error:%sCannot access private property %s::$sweets in %a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment