MemoryBehavior
extends Behavior
in package
Basically a wrapper for the Mimory Library for the Model/Tables to use.
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 configuration
- $_reflectionCache : array<string, array<string|int, mixed>>
- Reflection method cache for behaviors.
- $_table : Table
- Table instance.
- $Memory : mixed
- The memory tracking object.
Methods
- __construct() : mixed
- Constructor
- configShallow() : $this
- Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
- ensureMemory() : void
- Makes sure there is a Memory object created.
- 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.
- memoryUsage() : string
- Reports the memory usage at the time it is called.
- memoryUsageHighest() : string
- Reports the highest memory usage.
- setConfig() : $this
- Sets the config.
- 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 configuration
protected
array<string, mixed>
$_defaultConfig
= []
These are merged with user-provided configuration when the behavior is used.
$_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
$Memory
The memory tracking object.
protected
mixed
$Memory
= null
Tags
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.
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
$thisensureMemory()
Makes sure there is a Memory object created.
public
ensureMemory() : void
getConfig()
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>
By defining one of the callback methods a behavior is assumed to be interested in the related event.
Override this method if you need to add non-conventional event listeners. Or if you want your behavior to listen to non-standard events.
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.
memoryUsage()
Reports the memory usage at the time it is called.
public
memoryUsage([bool $nice = true ][, float|null $mem_usage = null ]) : string
Parameters
- $nice : bool = true
-
If we should return the bytes (false), of the calculated amount in a nice format (true).
- $mem_usage : float|null = null
-
The memory number to be made nice.
Return values
string —the memory usage stat.
memoryUsageHighest()
Reports the highest memory usage.
public
memoryUsageHighest([bool $nice = true ]) : string
Parameters
- $nice : bool = true
-
If we should return the bytes (false), of the calculated amount in a nice format (true).
Return values
string —the highest memory usage stat.
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
$thistable()
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.