Class AbstractLocator
Provides an abstract registry/factory for repository objects.
Property Summary
-
$instances protected
array<string,Cake\Datasource\RepositoryInterface>
Instances that belong to the registry.
-
$options protected
array<string, array>
Contains a list of options that were passed to get() method.
Method Summary
-
clear() public
Clears the registry of configuration and instances.
-
createInstance() abstract protected
Create an instance of a given classname.
-
exists() public
Check to see if an instance exists in the registry.
-
get() public
Get a repository instance from the registry.
-
remove() public
Removes an repository instance from the registry.
-
set() public
Set a repository instance.
Method Detail
createInstance() ¶ abstract protected
createInstance(string $alias, array<string, mixed> $options): Cake\Datasource\RepositoryInterface
Create an instance of a given classname.
Parameters
-
string
$alias Repository alias.
-
array<string, mixed>
$options The options you want to build the instance with.
Returns
Cake\Datasource\RepositoryInterface
exists() ¶ public
exists(string $alias): bool
Check to see if an instance exists in the registry.
Parameters
-
string
$alias
Returns
bool
get() ¶ public
get(string $alias, array<string, mixed> $options = []): Cake\Datasource\RepositoryInterface
Get a repository instance from the registry.
Parameters
-
string
$alias The alias name you want to get.
-
array<string, mixed>
$options optional The options you want to build the table with.
Returns
Cake\Datasource\RepositoryInterface
Throws
RuntimeException
When trying to get alias for which instance has already been created with different options.
remove() ¶ public
remove(string $alias): void
Removes an repository instance from the registry.
Parameters
-
string
$alias
Returns
void
set() ¶ public
set(string $alias, Cake\Datasource\RepositoryInterface $repository): Cake\Datasource\RepositoryInterface
Set a repository instance.
Parameters
-
string
$alias -
Cake\Datasource\RepositoryInterface
$repository
Returns
Cake\Datasource\RepositoryInterface