66
77use Psr \Container \ContainerInterface as Container ;
88
9+ /**
10+ * @psalm-import-type ExtendingService from \Inpsyde\Modularity\Module\ExtendingModule
11+ */
912class ServiceExtensions
1013{
1114 private const SERVICE_TYPE_NOT_CHANGED = 1 ;
1215 private const SERVICE_TYPE_CHANGED = 2 ;
1316 private const SERVICE_TYPE_NOT_OBJECT = 0 ;
1417
1518 /**
16- * @var array<string, list<callable >>
19+ * @var array<string, list<ExtendingService >>
1720 */
1821 protected $ extensions = [];
1922
@@ -28,7 +31,7 @@ final public static function typeId(string $type): string
2831
2932 /**
3033 * @param string $extensionId
31- * @param callable $extender
34+ * @param ExtendingService $extender
3235 * @return static
3336 */
3437 public function add (string $ extensionId , callable $ extender ): ServiceExtensions
@@ -94,7 +97,7 @@ protected function resolveByType(
9497
9598 $ extendedClasses [] = $ className ;
9699
97- /** @var array<class-string, list<callable >> $allCallbacks */
100+ /** @var array<class-string, list<ExtendingService >> $allCallbacks */
98101 $ allCallbacks = [];
99102
100103 // 1st group of extensions: targeting exact class
@@ -147,7 +150,7 @@ protected function resolveByType(
147150 * @param class-string $type
148151 * @param object $service
149152 * @param Container $container
150- * @param array $extenders
153+ * @param list<ExtendingService> $extenders
151154 * @return array{mixed, int}
152155 */
153156 private function extendByType (
0 commit comments