1<?php
2
3namespace ILIAS\BackgroundTasks\Dependencies\DependencyMap;
4
5use ILIAS\DI\Container;
6
7interface DependencyMap
8{
9
10    /**
11     * @param Container $DIC                      The DIC to take the dependencies from.
12     * @param string    $fullyQualifiedDomainName What domain name is requested?
13     * @param string    $for                      What class is the dependency for? Also fully
14     *                                            qualified domain name.
15     *
16     * @return mixed
17     */
18    public function getDependency(Container $DIC, $fullyQualifiedDomainName, $for);
19
20
21    /**
22     * @param Container $DIC                      The DIC to take the dependencies from.
23     * @param string    $fullyQualifiedDomainName What domain name is requested?
24     * @param callable  $map                      (DIC $DIC, string $fullyQualifiedDomainName,
25     *                                            string $for) => mixed|null
26     * @param string    $for                      What class is the dependency for? Also fully
27     *                                            qualified domain name.
28     *
29     * @return mixed
30     */
31    public function getDependencyWith(Container $DIC, $fullyQualifiedDomainName, $for, callable $map);
32}
33