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: * @phpstan-template T of object
18: * @phpstan-param class-string<T> $className
19: * @phpstan-return T
20: * @return mixed
21: */
22: public function getByType(string $className);
23:
24: /**
25: * @param class-string $className
26: * @return string[]
27: */
28: public function findServiceNamesByType(string $className): array;
29:
30: /**
31: * @return mixed[]
32: */
33: public function getServicesByTag(string $tagName): array;
34:
35: /**
36: * @return mixed[]
37: */
38: public function getParameters(): array;
39:
40: public function hasParameter(string $parameterName): bool;
41:
42: /**
43: * @return mixed
44: * @throws ParameterNotFoundException
45: */
46: public function getParameter(string $parameterName);
47:
48: }
49: