Class TableLocator
Provides a default registry/factory for Table objects.
- Cake\ORM\Locator\TableLocator implements Cake\ORM\Locator\LocatorInterface
Method Detail
_createsource protected
_create( array $options )
Wrapper for creating table instances
Parameters
- array
$options
- The alias to check for.
Returns
Cake\ORM\Table
\Cake\ORM\Table
_getClassNamesource protected
_getClassName( string $alias , array $options [] )
Gets the table class name.
Parameters
- string
$alias
- The alias name you want to get.
- array
$options
optional [] - Table options array.
Returns
string
string
clearsource public
clear( )
Clears the registry of configuration and instances.
Implementation of
Cake\ORM\Locator\LocatorInterface::clear()
configsource public
config( string|null $alias null , array|null $options null )
Stores a list of options to be used when instantiating an object with a matching alias.
The options that can be stored are those that are recognized by get()
If second argument is omitted, it will return the current settings for $alias.
If no arguments are passed it will return the full configuration array for all aliases
Parameters
- string|null
$alias
optional null - Name of the alias
- array|null
$options
optional null - list of options for the alias
Returns
array
The config data.
Throws
RuntimeException
When you attempt to configure an existing table instance.
Implementation of
Cake\ORM\Locator\LocatorInterface::config()
existssource public
exists( string $alias )
Check to see if an instance exists in the registry.
Parameters
- string
$alias
- The alias to check for.
Returns
boolean
bool
Implementation of
Cake\ORM\Locator\LocatorInterface::exists()
genericInstancessource public
genericInstances( )
Returns the list of tables that were created by this registry that could not be instantiated from a specific subclass. This method is useful for debugging common mistakes when setting up associations or created new table classes.
Returns
array
array
getsource public
get( string $alias , array $options [] )
Get a table instance from the registry.
Tables are only created once until the registry is flushed. This means that aliases must be unique across your application. This is important because table associations are resolved at runtime and cyclic references need to be handled correctly.
The options that can be passed are the same as in Table::__construct()
, but the key className
is also recognized.
If $options does not contain className
CakePHP will attempt to construct the class name based on the alias. For example 'Users' would result in App\Model\Table\UsersTable
being attempted. If this class does not exist, then the default Cake\ORM\Table
class will be used. By setting the className
option you can define the specific class to use. This className can use a plugin short class reference.
If you use a $name
that uses plugin syntax only the name part will be used as key in the registry. This means that if two plugins, or a plugin and app provide the same alias, the registry will only store the first instance.
If no table
option is passed, the table name will be the underscored version of the provided $alias.
If no connection
option is passed the table's defaultConnectionName() method will be called to get the default connection name to use.
Parameters
- string
$alias
- The alias name you want to get.
- array
$options
optional [] - The options you want to build the table with. If a table has already been loaded the options will be ignored.
Returns
Cake\ORM\Table
\Cake\ORM\Table
Throws
RuntimeException
When you try to configure an alias that already exists.
Implementation of
Cake\ORM\Locator\LocatorInterface::get()
removesource public
remove( string $alias )
Removes an instance from the registry.
Parameters
- string
$alias
- The alias to remove.
Implementation of
Cake\ORM\Locator\LocatorInterface::remove()
setsource public
set( string $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
\Cake\ORM\Table
Implementation of
Cake\ORM\Locator\LocatorInterface::set()
Properties summary
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Locator.TableLocator.html