1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\DependencyInjection;
4:
5: /** @api */
6: interface Container
7: {
8:
9: public function hasService(string $serviceName): bool;
10:
11: /**
12: * @return mixed
13: */
14: public function getService(string $serviceName);
15:
16: /**
17: * @template T of object
18: * @param class-string<T> $className
19: * @return T
20: */
21: public function getByType(string $className);
22:
23: /**
24: * @param class-string $className
25: * @return string[]
26: */
27: public function findServiceNamesByType(string $className): array;
28:
29: /**
30: * @return mixed[]
31: */
32: public function getServicesByTag(string $tagName): array;
33:
34: /**
35: * @return mixed[]
36: */
37: public function getParameters(): array;
38:
39: public function hasParameter(string $parameterName): bool;
40:
41: /**
42: * @return mixed
43: * @throws ParameterNotFoundException
44: */
45: public function getParameter(string $parameterName);
46:
47: }
48: