Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Contracts\Service;
13
 
14
use Psr\Container\ContainerInterface;
15
 
16
/**
17
 * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container.
18
 *
19
 * @author Nicolas Grekas <p@tchwork.com>
20
 * @author Mateusz Sip <mateusz.sip@gmail.com>
21
 *
688 lars 22
 * @template-covariant T of mixed
148 lars 23
 */
24
interface ServiceProviderInterface extends ContainerInterface
25
{
26
    /**
27
     * @return T
28
     */
29
    public function get(string $id): mixed;
30
 
31
    public function has(string $id): bool;
32
 
33
    /**
34
     * Returns an associative array of service types keyed by the identifiers provided by the current container.
35
     *
36
     * Examples:
37
     *
38
     *  * ['logger' => 'Psr\Log\LoggerInterface'] means the object provides a service named "logger" that implements Psr\Log\LoggerInterface
39
     *  * ['foo' => '?'] means the container provides service name "foo" of unspecified type
40
     *  * ['bar' => '?Bar\Baz'] means the container provides a service "bar" of type Bar\Baz|null
41
     *
42
     * @return string[] The provided service types, keyed by service names
43
     */
44
    public function getProvidedServices(): array;
45
}