1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
4: * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * For full copyright and license information, please see the LICENSE.txt
8: * Redistributions of files must retain the above copyright notice.
9: *
10: * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
11: * @link https://cakephp.org CakePHP(tm) Project
12: * @since 3.1.0
13: * @license https://opensource.org/licenses/mit-license.php MIT License
14: */
15: namespace Cake\ORM\Locator;
16:
17: use Cake\ORM\Table;
18:
19: /**
20: * Registries for Table objects should implement this interface.
21: *
22: * @method array getConfig($alias)
23: * @method $this setConfig($alias, $options = null)
24: */
25: interface LocatorInterface
26: {
27: /**
28: * Stores a list of options to be used when instantiating an object
29: * with a matching alias.
30: *
31: * @param string|null $alias Name of the alias
32: * @param array|null $options list of options for the alias
33: * @return array The config data.
34: */
35: public function config($alias = null, $options = null);
36:
37: /**
38: * Get a table instance from the registry.
39: *
40: * @param string $alias The alias name you want to get.
41: * @param array $options The options you want to build the table with.
42: * @return \Cake\ORM\Table
43: */
44: public function get($alias, array $options = []);
45:
46: /**
47: * Check to see if an instance exists in the registry.
48: *
49: * @param string $alias The alias to check for.
50: * @return bool
51: */
52: public function exists($alias);
53:
54: /**
55: * Set an instance.
56: *
57: * @param string $alias The alias to set.
58: * @param \Cake\ORM\Table $object The table to set.
59: * @return \Cake\ORM\Table
60: */
61: public function set($alias, Table $object);
62:
63: /**
64: * Clears the registry of configuration and instances.
65: *
66: * @return void
67: */
68: public function clear();
69:
70: /**
71: * Removes an instance from the registry.
72: *
73: * @param string $alias The alias to remove.
74: * @return void
75: */
76: public function remove($alias);
77: }
78: