<?php
class A {}
class B {}
class C {}
class D
{
public function __construct(A $a, B $b, C $c)
{
// ...
}
public function doSomething()
{
return 'Did something with ' . $this->a . ', ' . $this->b . ', ' . $this->c;
}
}
class D_Proxy extends D
{
private $serviceLocator;
private $original;
public function __construct(ServiceLocator $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
}
private function initialize()
{
$this->initialized = true;
$this->original = $this->serviceLocator->get('D');
}
public function doSomething()
{
if ( ! $this->initialized) {
$this->initialize();
}
return $this->original->doSomething();
}
}
class HelloWorld
{
public function __construct(D $d)
{
// ...
}
public function sayHello()
{
return 'Hello World';
}
public function doSomethingWithD()
{
return $this->d->doSomething();
}
}
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/3WeDm on line 11
Process exited with code 255.
Output for 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/3WeDm on line 11
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/3WeDm on line 11
Process exited with code 255.
Output for 4.3.0
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/X2JmD on line 11
Process exited with code 255.