SluggableBehavior
extends Behavior
in package
Used mainly for when you're importing data from an external source like an excel file, csv file, etc. where each record doesn't have an explicit unique id.
Table of Contents
Properties
- $_config : array<string, mixed>
- Runtime config
- $_configInitialized : bool
- Whether the config property has already been configured with defaults
- $_defaultConfig : array<string, mixed>
- Default config settings.
- $_reflectionCache : array<string, array<string|int, mixed>>
- Reflection method cache for behaviors.
- $_table : Table
- Table instance.
Methods
- __construct() : mixed
- Constructor
- beforeMarshal() : void
- Preparing the data
- beforeSave() : void
- Manipulate data before saving it.
- configShallow() : $this
- Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
- getConfig() : mixed
- Returns the config.
- getConfigOrFail() : mixed
- Returns the config for this specific key.
- getTable() : Table
- Get the table instance this behavior is bound to.
- implementedEvents() : array<string, mixed>
- Gets the Model callbacks this behavior is interested in.
- implementedFinders() : array<string|int, mixed>
- implementedFinders
- implementedMethods() : array<string|int, mixed>
- implementedMethods
- initialize() : void
- Constructor hook method.
- setConfig() : $this
- Sets the config.
- sluggableRegenSlug() : EntityInterface
- Manually regenerate the slug.
- sluggableSlugify() : string
- Creates a slug from the input
- table() : Table
- Get the table instance this behavior is bound to.
- verifyConfig() : void
- verifyConfig
- _configDelete() : void
- Deletes a single config key.
- _configRead() : mixed
- Reads a config key.
- _configWrite() : void
- Writes a config key.
- _reflectionCache() : array<string|int, mixed>
- Gets the methods implemented by this behavior
- _resolveMethodAliases() : array<string|int, mixed>
- Removes aliased methods that would otherwise be duplicated by userland configuration.
Properties
$_config
Runtime config
protected
array<string, mixed>
$_config
= []
$_configInitialized
Whether the config property has already been configured with defaults
protected
bool
$_configInitialized
= false
$_defaultConfig
Default config settings.
protected
array<string, mixed>
$_defaultConfig
= ['field' => 'name', 'slug' => 'slug', 'updateSlug' => true]
$_reflectionCache
Reflection method cache for behaviors.
protected
static array<string, array<string|int, mixed>>
$_reflectionCache
= []
Stores the reflected method + finder methods per class. This prevents reflecting the same class multiple times in a single process.
$_table
Table instance.
protected
Table
$_table
Methods
__construct()
Constructor
public
__construct(Table $table[, array<string, mixed> $config = [] ]) : mixed
Merges config with the default and store in the config property
Parameters
- $table : Table
-
The table this behavior is attached to.
- $config : array<string, mixed> = []
-
The config for this behavior.
beforeMarshal()
Preparing the data
public
beforeMarshal(Event<string|int, mixed> $event, ArrayObject<string, mixed> $data, ArrayObject<string, mixed> $options) : void
Parameters
- $event : Event<string|int, mixed>
-
the event instance
- $data : ArrayObject<string, mixed>
-
data to be used in the marshal
- $options : ArrayObject<string, mixed>
-
options for the marshal
beforeSave()
Manipulate data before saving it.
public
beforeSave(Event<string|int, mixed> $event, EntityInterface $entity, ArrayObject<string, mixed> $options) : void
Parameters
- $event : Event<string|int, mixed>
-
The even tracking object.
- $entity : EntityInterface
-
The entity to slug.
- $options : ArrayObject<string, mixed>
-
Passed options.
configShallow()
Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
public
configShallow(array<string, mixed>|string $key[, mixed|null $value = null ]) : $this
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
Return values
$thisgetConfig()
Returns the config.
public
getConfig([string|null $key = null ][, mixed $default = null ]) : mixed
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
- $key : string|null = null
-
The key to get or null for the whole config.
- $default : mixed = null
-
The return value when the key does not exist.
Return values
mixed —Configuration data at the named key or null if the key does not exist.
getConfigOrFail()
Returns the config for this specific key.
public
getConfigOrFail(string $key) : mixed
The config value for this key must exist, it can never be null.
Parameters
- $key : string
-
The key to get.
Tags
Return values
mixed —Configuration data at the named key
getTable()
Get the table instance this behavior is bound to.
public
getTable() : Table
Use table() instead.
Return values
Table —The bound table instance.
implementedEvents()
Gets the Model callbacks this behavior is interested in.
public
implementedEvents() : array<string, mixed>
Return values
array<string, mixed>implementedFinders()
implementedFinders
public
implementedFinders() : array<string|int, mixed>
Provides an alias->methodname map of which finders a behavior implements. Example:
[
'this' => 'findThis',
'alias' => 'findMethodName'
]
With the above example, a call to $table->find('this')
will call $behavior->findThis()
and a call to $table->find('alias')
will call $behavior->findMethodName()
It is recommended, though not required, to define implementedFinders in the config property of child classes such that it is not necessary to use reflections to derive the available method list. See core behaviors for examples
Tags
Return values
array<string|int, mixed>implementedMethods()
implementedMethods
public
implementedMethods() : array<string|int, mixed>
Provides an alias->methodname map of which methods a behavior implements. Example:
[
'method' => 'method',
'aliasedMethod' => 'somethingElse'
]
With the above example, a call to $table->method()
will call $behavior->method()
and a call to $table->aliasedMethod()
will call $behavior->somethingElse()
It is recommended, though not required, to define implementedFinders in the config property of child classes such that it is not necessary to use reflections to derive the available method list. See core behaviors for examples
Tags
Return values
array<string|int, mixed>initialize()
Constructor hook method.
public
initialize(array<string, mixed> $config) : void
Implement this method to avoid having to overwrite the constructor and call parent.
Parameters
- $config : array<string, mixed>
-
The configuration settings provided to this behavior.
setConfig()
Sets the config.
public
setConfig(array<string, mixed>|string $key[, mixed|null $value = null ][, bool $merge = true ]) : $this
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
- $merge : bool = true
-
Whether to recursively merge or overwrite existing config, defaults to true.
Tags
Return values
$thissluggableRegenSlug()
Manually regenerate the slug.
public
sluggableRegenSlug(EntityInterface $entity) : EntityInterface
Parameters
- $entity : EntityInterface
-
The entity to slug.
Return values
EntityInterface —The updated entity.
sluggableSlugify()
Creates a slug from the input
public
sluggableSlugify([mixed $input = null ]) : string
Parameters
- $input : mixed = null
-
The input to create the slug from
Return values
string —the slugged string
table()
Get the table instance this behavior is bound to.
public
table() : Table
Return values
Table —The bound table instance.
verifyConfig()
verifyConfig
public
verifyConfig() : void
Checks that implemented keys contain values pointing at callable.
Tags
_configDelete()
Deletes a single config key.
protected
_configDelete(string $key) : void
Parameters
- $key : string
-
Key to delete.
Tags
_configRead()
Reads a config key.
protected
_configRead(string|null $key) : mixed
Parameters
- $key : string|null
-
Key to read.
_configWrite()
Writes a config key.
protected
_configWrite(array<string, mixed>|string $key, mixed $value[, string|bool $merge = false ]) : void
Parameters
- $key : array<string, mixed>|string
-
Key to write to.
- $value : mixed
-
Value to write.
- $merge : string|bool = false
-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Tags
_reflectionCache()
Gets the methods implemented by this behavior
protected
_reflectionCache() : array<string|int, mixed>
Uses the implementedEvents() method to exclude callback methods.
Methods starting with _
will be ignored, as will methods
declared on Cake\ORM\Behavior
Tags
Return values
array<string|int, mixed>_resolveMethodAliases()
Removes aliased methods that would otherwise be duplicated by userland configuration.
protected
_resolveMethodAliases(string $key, array<string, mixed> $defaults, array<string, mixed> $config) : array<string|int, mixed>
Parameters
- $key : string
-
The key to filter.
- $defaults : array<string, mixed>
-
The default method mappings.
- $config : array<string, mixed>
-
The customized method mappings.
Return values
array<string|int, mixed> —A de-duped list of config data.