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\TableRegistry;
18:
19: /**
20: * Contains method for setting and accessing LocatorInterface instance
21: */
22: trait LocatorAwareTrait
23: {
24: /**
25: * Table locator instance
26: *
27: * @var \Cake\ORM\Locator\LocatorInterface
28: */
29: protected $_tableLocator;
30:
31: /**
32: * Sets the table locator.
33: * If no parameters are passed, it will return the currently used locator.
34: *
35: * @param \Cake\ORM\Locator\LocatorInterface|null $tableLocator LocatorInterface instance.
36: * @return \Cake\ORM\Locator\LocatorInterface
37: * @deprecated 3.5.0 Use getTableLocator()/setTableLocator() instead.
38: */
39: public function tableLocator(LocatorInterface $tableLocator = null)
40: {
41: deprecationWarning(
42: get_called_class() . '::tableLocator() is deprecated. ' .
43: 'Use getTableLocator()/setTableLocator() instead.'
44: );
45: if ($tableLocator !== null) {
46: $this->setTableLocator($tableLocator);
47: }
48:
49: return $this->getTableLocator();
50: }
51:
52: /**
53: * Sets the table locator.
54: *
55: * @param \Cake\ORM\Locator\LocatorInterface $tableLocator LocatorInterface instance.
56: * @return $this
57: */
58: public function setTableLocator(LocatorInterface $tableLocator)
59: {
60: $this->_tableLocator = $tableLocator;
61:
62: return $this;
63: }
64:
65: /**
66: * Gets the table locator.
67: *
68: * @return \Cake\ORM\Locator\LocatorInterface
69: */
70: public function getTableLocator()
71: {
72: if (!$this->_tableLocator) {
73: $this->_tableLocator = TableRegistry::getTableLocator();
74: }
75:
76: return $this->_tableLocator;
77: }
78: }
79: