Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Fixtures / includes / autowiring_classes.php
1 <?php
2
3 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
4
5 class Foo
6 {
7 }
8
9 class Bar
10 {
11     public function __construct(Foo $foo)
12     {
13     }
14 }
15
16 interface AInterface
17 {
18 }
19
20 class A implements AInterface
21 {
22     public static function create(Foo $foo)
23     {
24     }
25 }
26
27 class B extends A
28 {
29 }
30
31 class C
32 {
33     public function __construct(A $a)
34     {
35     }
36 }
37
38 interface DInterface
39 {
40 }
41
42 interface EInterface extends DInterface
43 {
44 }
45
46 interface IInterface
47 {
48 }
49
50 class I implements IInterface
51 {
52 }
53
54 class F extends I implements EInterface
55 {
56 }
57
58 class G
59 {
60     public function __construct(DInterface $d, EInterface $e, IInterface $i)
61     {
62     }
63 }
64
65 class H
66 {
67     public function __construct(B $b, DInterface $d)
68     {
69     }
70 }
71
72 class D
73 {
74     public function __construct(A $a, DInterface $d)
75     {
76     }
77 }
78
79 class E
80 {
81     public function __construct(D $d = null)
82     {
83     }
84 }
85
86 class J
87 {
88     public function __construct(I $i)
89     {
90     }
91 }
92
93 class K
94 {
95     public function __construct(IInterface $i)
96     {
97     }
98 }
99
100 interface CollisionInterface
101 {
102 }
103
104 class CollisionA implements CollisionInterface
105 {
106 }
107
108 class CollisionB implements CollisionInterface
109 {
110 }
111
112 class CannotBeAutowired
113 {
114     public function __construct(CollisionInterface $collision)
115     {
116     }
117 }
118
119 class CannotBeAutowiredForwardOrder
120 {
121     public function __construct(CollisionA $a, CollisionInterface $b, CollisionB $c)
122     {
123     }
124 }
125
126 class CannotBeAutowiredReverseOrder
127 {
128     public function __construct(CollisionA $a, CollisionB $c, CollisionInterface $b)
129     {
130     }
131 }
132
133 class Lille
134 {
135 }
136
137 class Dunglas
138 {
139     public function __construct(Lille $l)
140     {
141     }
142 }
143
144 class LesTilleuls
145 {
146     public function __construct(Dunglas $j, Dunglas $k)
147     {
148     }
149 }
150
151 class OptionalParameter
152 {
153     public function __construct(CollisionInterface $c = null, A $a, Foo $f = null)
154     {
155     }
156 }
157
158 class BadTypeHintedArgument
159 {
160     public function __construct(Dunglas $k, NotARealClass $r)
161     {
162     }
163 }
164 class BadParentTypeHintedArgument
165 {
166     public function __construct(Dunglas $k, OptionalServiceClass $r)
167     {
168     }
169 }
170 class NotGuessableArgument
171 {
172     public function __construct(Foo $k)
173     {
174     }
175 }
176 class NotGuessableArgumentForSubclass
177 {
178     public function __construct(A $k)
179     {
180     }
181 }
182 class MultipleArguments
183 {
184     public function __construct(A $k, $foo, Dunglas $dunglas, array $bar)
185     {
186     }
187 }
188
189 class MultipleArgumentsOptionalScalar
190 {
191     public function __construct(A $a, $foo = 'default_val', Lille $lille = null)
192     {
193     }
194 }
195 class MultipleArgumentsOptionalScalarLast
196 {
197     public function __construct(A $a, Lille $lille, $foo = 'some_val')
198     {
199     }
200 }
201 class MultipleArgumentsOptionalScalarNotReallyOptional
202 {
203     public function __construct(A $a, $foo = 'default_val', Lille $lille)
204     {
205     }
206 }
207
208 /*
209  * Classes used for testing createResourceForClass
210  */
211 class ClassForResource
212 {
213     public function __construct($foo, Bar $bar = null)
214     {
215     }
216
217     public function setBar(Bar $bar)
218     {
219     }
220 }
221 class IdenticalClassResource extends ClassForResource
222 {
223 }
224
225 class ClassChangedConstructorArgs extends ClassForResource
226 {
227     public function __construct($foo, Bar $bar, $baz)
228     {
229     }
230 }
231
232 class SetterInjectionCollision
233 {
234     /**
235      * @required
236      */
237     public function setMultipleInstancesForOneArg(CollisionInterface $collision)
238     {
239         // The CollisionInterface cannot be autowired - there are multiple
240
241         // should throw an exception
242     }
243 }
244
245 class SetterInjection extends SetterInjectionParent
246 {
247     /**
248      * @required
249      */
250     public function setFoo(Foo $foo)
251     {
252         // should be called
253     }
254
255     /** @inheritdoc*/ // <- brackets are missing on purpose
256     public function setDependencies(Foo $foo, A $a)
257     {
258         // should be called
259     }
260
261     /** {@inheritdoc} */
262     public function setWithCallsConfigured(A $a)
263     {
264         // this method has a calls configured on it
265     }
266
267     public function notASetter(A $a)
268     {
269         // should be called only when explicitly specified
270     }
271
272     /**
273      * @required*/
274     public function setChildMethodWithoutDocBlock(A $a)
275     {
276     }
277 }
278
279 class SetterInjectionParent
280 {
281     /** @required*/
282     public function setDependencies(Foo $foo, A $a)
283     {
284         // should be called
285     }
286
287     public function notASetter(A $a)
288     {
289         // @required should be ignored when the child does not add @inheritdoc
290     }
291
292     /** @required <tab> prefix is on purpose */
293     public function setWithCallsConfigured(A $a)
294     {
295     }
296
297     /** @required */
298     public function setChildMethodWithoutDocBlock(A $a)
299     {
300     }
301 }
302
303 class NotWireable
304 {
305     public function setNotAutowireable(NotARealClass $n)
306     {
307     }
308
309     public function setBar()
310     {
311     }
312
313     public function setOptionalNotAutowireable(NotARealClass $n = null)
314     {
315     }
316
317     public function setDifferentNamespace(\stdClass $n)
318     {
319     }
320
321     public function setOptionalNoTypeHint($foo = null)
322     {
323     }
324
325     public function setOptionalArgNoAutowireable($other = 'default_val')
326     {
327     }
328
329     /** @required */
330     protected function setProtectedMethod(A $a)
331     {
332     }
333 }
334
335 class PrivateConstructor
336 {
337     private function __construct()
338     {
339     }
340 }
341
342 class ScalarSetter
343 {
344     /**
345      * @required
346      */
347     public function setDefaultLocale($defaultLocale)
348     {
349     }
350 }