Commit cc5e21b
committed
Introduce Instantiator types (Autowire and Factory)
Extract Factory (always-new instances) and Autowire (type-hint-based
DI resolution) from Instantiator, replacing the mode string with
polymorphism. Refactor Instantiator to lazily initialize reflection
and constructor params, accept initial params in the constructor, and
remove the embedded class-name parsing that now lives in Container's
createInstantiator().
Container gains createInstantiator() with `new`/`autowire` modifier
support, Autowire integration via offsetSet(), class_exists() check
in has(), ReflectionException wrapping in getItem(), Closure-aware
lazyLoad(), and set()/loadArray() handling for Instantiator/Closure
values.
Add AutowireTest, FactoryTest, NotFoundExceptionTest, and extend
ContainerTest and InstantiatorTest to cover magic methods, deferred
config, loadString/loadFile error paths, and edge cases (102 tests).1 parent 2a8e237 commit cc5e21b
File tree
10 files changed
+867
-74
lines changed- src
- tests
10 files changed
+867
-74
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| 19 | + | |
| 20 | + | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| |||
47 | 50 | | |
48 | 51 | | |
49 | 52 | | |
50 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
51 | 63 | | |
52 | 64 | | |
53 | 65 | | |
| |||
64 | 76 | | |
65 | 77 | | |
66 | 78 | | |
67 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
68 | 84 | | |
69 | 85 | | |
70 | 86 | | |
| |||
97 | 113 | | |
98 | 114 | | |
99 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
100 | 122 | | |
101 | 123 | | |
102 | 124 | | |
103 | 125 | | |
104 | 126 | | |
105 | 127 | | |
106 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
107 | 143 | | |
108 | 144 | | |
109 | 145 | | |
| |||
206 | 242 | | |
207 | 243 | | |
208 | 244 | | |
209 | | - | |
| 245 | + | |
210 | 246 | | |
211 | 247 | | |
212 | 248 | | |
| |||
219 | 255 | | |
220 | 256 | | |
221 | 257 | | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
222 | 275 | | |
223 | 276 | | |
224 | 277 | | |
| |||
319 | 372 | | |
320 | 373 | | |
321 | 374 | | |
322 | | - | |
| 375 | + | |
323 | 376 | | |
324 | 377 | | |
325 | 378 | | |
326 | | - | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
327 | 384 | | |
328 | 385 | | |
329 | 386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | 13 | | |
15 | 14 | | |
16 | 15 | | |
17 | 16 | | |
18 | 17 | | |
19 | | - | |
20 | 18 | | |
21 | | - | |
22 | 19 | | |
23 | 20 | | |
24 | 21 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | 22 | | |
29 | 23 | | |
30 | | - | |
31 | | - | |
| 24 | + | |
| 25 | + | |
32 | 26 | | |
33 | | - | |
34 | | - | |
| 27 | + | |
| 28 | + | |
35 | 29 | | |
36 | 30 | | |
37 | 31 | | |
| |||
45 | 39 | | |
46 | 40 | | |
47 | 41 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
52 | 47 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 48 | + | |
| 49 | + | |
58 | 50 | | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | 51 | | |
68 | 52 | | |
69 | 53 | | |
| |||
73 | 57 | | |
74 | 58 | | |
75 | 59 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | 60 | | |
81 | 61 | | |
82 | 62 | | |
| |||
98 | 78 | | |
99 | 79 | | |
100 | 80 | | |
101 | | - | |
102 | | - | |
103 | 81 | | |
104 | | - | |
105 | | - | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
106 | 85 | | |
107 | | - | |
108 | | - | |
109 | | - | |
| 86 | + | |
110 | 87 | | |
111 | 88 | | |
112 | 89 | | |
| |||
156 | 133 | | |
157 | 134 | | |
158 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
159 | 142 | | |
160 | 143 | | |
161 | 144 | | |
162 | 145 | | |
163 | 146 | | |
164 | 147 | | |
165 | 148 | | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
| 149 | + | |
172 | 150 | | |
173 | 151 | | |
174 | 152 | | |
| |||
184 | 162 | | |
185 | 163 | | |
186 | 164 | | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | 165 | | |
209 | 166 | | |
210 | 167 | | |
| |||
218 | 175 | | |
219 | 176 | | |
220 | 177 | | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
221 | 188 | | |
222 | 189 | | |
223 | 190 | | |
| |||
229 | 196 | | |
230 | 197 | | |
231 | 198 | | |
232 | | - | |
| 199 | + | |
233 | 200 | | |
234 | 201 | | |
235 | 202 | | |
236 | 203 | | |
237 | | - | |
238 | | - | |
| 204 | + | |
| 205 | + | |
239 | 206 | | |
240 | 207 | | |
241 | 208 | | |
| |||
0 commit comments