*/ private array $sourceStubbers; public function __construct(SourceStubber $sourceStubber, SourceStubber ...$otherSourceStubbers) { $this->sourceStubbers = array_values(array_merge([$sourceStubber], $otherSourceStubbers)); } /** @param class-string|trait-string $className */ public function generateClassStub(string $className): StubData|null { foreach ($this->sourceStubbers as $sourceStubber) { $stubData = $sourceStubber->generateClassStub($className); if ($stubData !== null) { return $stubData; } } return null; } public function generateFunctionStub(string $functionName): StubData|null { foreach ($this->sourceStubbers as $sourceStubber) { $stubData = $sourceStubber->generateFunctionStub($functionName); if ($stubData !== null) { return $stubData; } } return null; } public function generateConstantStub(string $constantName): StubData|null { return array_reduce($this->sourceStubbers, static fn (StubData|null $stubData, SourceStubber $sourceStubber): StubData|null => $stubData ?? $sourceStubber->generateConstantStub($constantName), null); } } __halt_compiler();----SIGNATURE:----XxFK3ftGRO1qYwpVfXZekWHOw7fC/B1z8HJfeDsJqRKAGl++yk3GzeiXI/NSWocsghJG1r6BMpSPP88JBIfS5hI+RWxRa4Y6VIkxUma7J0/IBNrbSWr0Ey1K5p4gw+1ykRRBs8JsvDgxkPKOlNOv81stqYWY12lgEC5XOYUz988MxWEZQL0rRjalTJrHDo0c42dGXWW6PaaZsokYk+0gETPyiw25GaOLlSIxieRTHZzA0xGuLrtyX3EAuEp+XCwj32G5Q9ckL5phTkJBITDSqfyhWdBO81yQ5BkpOfUUrCghnITYNS5/k6PBYb8GmPy2/NkkGtssjEpL7SXV8TlH2/m9xJ51hCTNelbzWpJzAnP+TsTaKSshaeOBRe4gxQWeRzgDLMkE2m3w7yUKKJerebktq86eCMPQFeGtWCpe1Fhg9AC9568Y2qHOIZSvrrnd/S+MdVDk1oO6DpcIxCIYzI1MMXkFmsUR0XsU3dvKTHKFo+9F8FbEq/Yi3XSbvYtEpWIWFBNQgRSpRinAhlC36SDKyAdoMkbvIZc0nI1al7ct3zLpwmqBOe5gu2zHBl0eSk8SUWIIBE2OSxqDQe+R2++M+Wb78K3xsi9twPlyQO73NU7j7b0TiC5PAZOPQ1YiU0fcAUuH5m+YjkrI5a+hEVIUSlqm4hZxpyB4hpbbFrU=----ATTACHMENT:----MTg0MDEyNTIyOTU4NzgzOSA5NjY4NDE2MzQ5MTUyNjQ4IDE2MTM0NjA0NDM5OTQzNTY=