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