public static function add($filter, array $options = [])
    {
        if (is_string($filter)) {
            $filter = static::_createFilter($filter, $options);
        }
        static::$_stack[] = $filter;

        return $filter;
    }
public static function add($filter, array $options = [])
    {
        if (is_string($filter)) {
            $filter = static::_createFilter($filter, $options);
        }
        static::$_stack[] = $filter;

        return $filter;
    }
public static function add ( $ filter , array $ options = [ ] ) { if ( is_string ( $ filter ) ) { $ filter = static :: _createFilter ( $ filter , $ options ) ; } static :: $ _stack [ ] = $ filter ; return $ filter ; }
Add a new middleware object to the stack of middleware
that will be executed.

Instances of filters will be re-used across all sub-requests
in a request.

@param string|\Cake\Routing\DispatcherFilter $filter Either the classname of the filter
or an instance to use.
@param array $options Constructor arguments/options for the filter if you are using a string name.
If you are passing an instance, this argument will be ignored.
@return \Cake\Routing\DispatcherFilter
Add a new middleware object to the stack of middleware that will be executed .