Class TableRegistry
Provides a registry/factory for Table objects.
This registry allows you to centralize the configuration for tables their connections and other meta-data.
Configuring instances
You may need to configure your table objects. Using the TableLocator
you can centralize configuration. Any configuration set before instances are created will be used when creating instances. If you modify configuration after an instance is made, the instances will not be updated.
TableRegistry::getTableLocator()->setConfig('Users', ['table' => 'my_users']); // Prior to 3.6.0 TableRegistry::config('Users', ['table' => 'my_users']);
Configuration data is stored per alias if you use the same table with multiple aliases you will need to set configuration multiple times.
Getting instances
You can fetch instances out of the registry through TableLocator::get()
. One instance is stored per alias. Once an alias is populated the same instance will always be returned. This reduces the ORM memory cost and helps make cyclic references easier to solve.
$table = TableRegistry::getTableLocator()->get('Users', $config); // Prior to 3.6.0 $table = TableRegistry::get('Users', $config);
Properties summary
- $_defaultLocatorClass protected static
string
Default LocatorInterface implementation class.
- $_locator protected static
\Cake\ORM\Locator\LocatorInterface
LocatorInterface implementation instance.
Method Summary
- config() public static
Stores a list of options to be used when instantiating an object with a matching alias.
Method Detail
__callStatic() public static
__callStatic(mixed $name, mixed $arguments)
Proxy for static calls on a locator.
Parameters
-
string
$name Method name.
-
array
$arguments Method arguments.
Returns
mixed
clear() public static
clear()
Clears the registry of configuration and instances.
config() public static
config(mixed $alias, mixed $options)
Stores a list of options to be used when instantiating an object with a matching alias.
Parameters
-
string|null
$alias optional Name of the alias
-
array|null
$options optional list of options for the alias
Returns
array
The config data.
exists() public static
exists(mixed $alias)
Check to see if an instance exists in the registry.
Parameters
-
string
$alias The alias to check for.
Returns
bool
get() public static
get(mixed $alias, array $options)
Get a table instance from the registry.
See options specification in {@link TableLocator::get()}.
Parameters
-
string
$alias The alias name you want to get.
-
array
$options optional The options you want to build the table with.
Returns
\Cake\ORM\Table
getTableLocator() public static
getTableLocator()
Returns a singleton instance of LocatorInterface implementation.
Returns
\Cake\ORM\Locator\LocatorInterface
locator() public static
locator(\Cake\ORM\Locator\LocatorInterface $locator)
Sets and returns a singleton instance of LocatorInterface implementation.
Parameters
-
\Cake\ORM\Locator\LocatorInterface|null
$locator optional Instance of a locator to use.
Returns
\Cake\ORM\Locator\LocatorInterface
remove() public static
remove(mixed $alias)
Removes an instance from the registry.
Parameters
-
string
$alias The alias to remove.
set() public static
set(mixed $alias, \Cake\ORM\Table $object)
Set an instance.
Parameters
-
string
$alias The alias to set.
-
\Cake\ORM\Table
$object The table to set.
Returns
\Cake\ORM\Table
setTableLocator() public static
setTableLocator(\Cake\ORM\Locator\LocatorInterface $tableLocator)
Sets singleton instance of LocatorInterface implementation.
Parameters
-
\Cake\ORM\Locator\LocatorInterface
$tableLocator Instance of a locator to use.
Property Detail
$_defaultLocatorClass protected static
Default LocatorInterface implementation class.
Type
string
$_locator protected static
LocatorInterface implementation instance.
Type
\Cake\ORM\Locator\LocatorInterface
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.9/class-Cake.ORM.TableRegistry.html