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