lithium\core\Adaptable::applyStrategies PHP Method

applyStrategies() public static method

Applies strategies configured in $name for $method on $data.
public static applyStrategies ( string $method, string $name, mixed $data, array $options = [] ) : mixed
$method string The strategy method to be applied.
$name string The named configuration
$data mixed The data to which the strategies will be applied.
$options array If `mode` is set to 'LIFO', the strategies are applied in reverse. order of their definition.
return mixed Result of application of strategies to data. If no strategies have been configured, this method will simply return the original data.
    public static function applyStrategies($method, $name, $data, array $options = array())
    {
        $options += array('mode' => null);
        if (!($strategies = static::strategies($name))) {
            return $data;
        }
        if (!count($strategies)) {
            return $data;
        }
        if (isset($options['mode']) && $options['mode'] === 'LIFO') {
            $strategies->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO);
            unset($options['mode']);
        }
        foreach ($strategies as $strategy) {
            if (method_exists($strategy, $method)) {
                $data = $strategy->{$method}($data, $options);
            }
        }
        return $data;
    }