2 namespace TYPO3\CMS\Extbase\Tests\Unit\
Object\Container\Fixtures
;
5 class SimpleTypeConstructorArgument
{
15 public function __construct($foo = FALSE) {
21 class ArgumentTestClass
{
26 class MandatoryConstructorArgument
{
29 * @var ArgumentTestClass
31 public $argumentTestClass;
36 * @param ArgumentTestClass $argumentTestClass
38 public function __construct(ArgumentTestClass
$argumentTestClass) {
39 $this->argumentTestClass
= $argumentTestClass;
40 $this->allArguments
= func_get_args();
45 class OptionalConstructorArgument
{
48 * @var ArgumentTestClass
50 public $argumentTestClass;
53 * @param ArgumentTestClass $argumentTestClass
55 public function __construct(ArgumentTestClass
$argumentTestClass = NULL) {
56 $this->argumentTestClass
= $argumentTestClass;
61 class MandatoryConstructorArgumentTwo
{
64 * @var ArgumentTestClass
66 public $argumentTestClass;
69 * @var ArgumentTestClass
71 public $argumentTestClassTwo;
74 * @param ArgumentTestClass $argumentTestClass
75 * @param ArgumentTestClass $argumentTestClassTwo
77 public function __construct(ArgumentTestClass
$argumentTestClass, ArgumentTestClass
$argumentTestClassTwo) {
78 $this->argumentTestClass
= $argumentTestClass;
79 $this->argumentTestClassTwo
= $argumentTestClassTwo;
84 class TwoConstructorArgumentsSecondOptional
{
87 * @var ArgumentTestClass
89 public $argumentTestClass;
92 * @var ArgumentTestClass
94 public $argumentTestClassTwo;
97 * @param ArgumentTestClass $argumentTestClass
98 * @param ArgumentTestClass $argumentTestClassTwo
100 public function __construct(ArgumentTestClass
$argumentTestClass, ArgumentTestClass
$argumentTestClassTwo = NULL) {
101 $this->argumentTestClass
= $argumentTestClass;
102 $this->argumentTestClassTwo
= $argumentTestClassTwo;
107 class TwoConstructorArgumentsFirstOptional
{
110 * @var ArgumentTestClass
112 public $argumentTestClass;
115 * @var ArgumentTestClass
117 public $argumentTestClassTwo;
120 * The extbase container code uses PHP parameter reflection isOptional() to determine
121 * injection. PHP behaves differently in current supported core versions, in effect
122 * constructor injection of the first argument can not be relied on.
124 * The according unit tests currently do not check the value of first argument.
126 * @see https://bugs.php.net/bug.php?id=62715
128 * @param ArgumentTestClass $argumentTestClass
129 * @param ArgumentTestClass $argumentTestClassTwo
131 public function __construct(ArgumentTestClass
$argumentTestClass = NULL, ArgumentTestClass
$argumentTestClassTwo) {
132 $this->argumentTestClass
= $argumentTestClass;
133 $this->argumentTestClassTwo
= $argumentTestClassTwo;
138 class TwoConstructorArgumentsBothOptional
{
141 * @var ArgumentTestClass
143 public $argumentTestClass;
146 * @var ArgumentTestClass
148 public $argumentTestClassTwo;
151 * @param ArgumentTestClass $argumentTestClass
152 * @param ArgumentTestClass $argumentTestClassTwo
154 public function __construct(ArgumentTestClass
$argumentTestClass = NULL, ArgumentTestClass
$argumentTestClassTwo = NULL) {
155 $this->argumentTestClass
= $argumentTestClass;
156 $this->argumentTestClassTwo
= $argumentTestClassTwo;