@@ -11,6 +11,7 @@ class AutoDIExtension extends CompilerExtension
1111{
1212
1313 private $ defaults = [
14+ 'registerOnConfiguration ' => FALSE ,
1415 'directories ' => [
1516 '%appDir% ' ,
1617 ],
@@ -20,11 +21,33 @@ class AutoDIExtension extends CompilerExtension
2021
2122 public function beforeCompile ()
2223 {
24+ if ( ! $ this ->shouldRegisterOnConfiguration ()) {
25+ $ this ->registerServices ();
26+ }
27+ }
28+
29+ public function loadConfiguration ()
30+ {
31+ if ($ this ->shouldRegisterOnConfiguration ()) {
32+ $ this ->registerServices ();
33+ }
34+ }
35+
36+ /**
37+ * @return bool
38+ */
39+ private function shouldRegisterOnConfiguration ()
40+ {
41+ return (bool ) $ this ->getConfig ($ this ->defaults )['registerOnConfiguration ' ];
42+ }
43+
44+ private function registerServices ()
45+ {
2346 $ config = $ this ->getConfig ($ this ->defaults );
2447
2548 $ robotLoader = new RobotLoader ();
2649
27- foreach ($ config ['directories ' ] as $ directory ) {
50+ foreach ($ config ['directories ' ] as $ directory ) {
2851 $ robotLoader ->addDirectory ($ directory );
2952 }
3053
@@ -37,11 +60,11 @@ public function beforeCompile()
3760
3861 $ builder = $ this ->getContainerBuilder ();
3962
40- foreach ($ config ['services ' ] as $ service ) {
63+ foreach ($ config ['services ' ] as $ service ) {
4164
4265 list ($ field , $ matchingClasses ) = $ this ->getClasses ($ service , $ classes );
4366
44- if (isset ($ service ['exclude ' ])) {
67+ if (isset ($ service ['exclude ' ])) {
4568 $ excluded = $ service ['exclude ' ];
4669 $ matchingClasses = $ this ->removeExcludedClasses ($ matchingClasses , is_string ($ excluded ) ? [$ excluded ] : $ excluded );
4770 unset($ service ['exclude ' ]);
@@ -65,7 +88,7 @@ public function beforeCompile()
6588 }
6689 }
6790
68- /**
91+ /**
6992 * @param array $service
7093 * @param ClassList $classes
7194 * @return array [definition field, Class list]
0 commit comments