1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (https://nette.org)
5: *
6: * Copyright (c) 2004 David Grudl (http://davidgrudl.com)
7: *
8: * For the full copyright and license information, please view
9: * the file license.txt that was distributed with this source code.
10: */
11:
12: namespace Nette;
13:
14: use Nette;
15:
16:
17:
18: /**
19: * The service locator.
20: *
21: * @author David Grudl
22: */
23: interface IServiceLocator
24: {
25:
26: /**
27: * Adds the specified service to the service container.
28: * @param string service name
29: * @param mixed object, class name or factory callback
30: * @param bool is singleton?
31: * @param array factory options
32: * @return void
33: */
34: function addService($name, $service, $singleton = TRUE, array $options = NULL);
35:
36: /**
37: * Gets the service object of the specified type.
38: * @param string service name
39: * @param array options in case service is not singleton
40: * @return mixed
41: */
42: function getService($name, array $options = NULL);
43:
44: /**
45: * Removes the specified service type from the service container.
46: * @return void
47: */
48: function removeService($name);
49:
50: /**
51: * Exists the service?
52: * @return bool
53: */
54: function hasService($name);
55:
56: }
57: