Eva\EvaEngine\Interceptor\Dispatch::getInterceptorParams PHP Method

getInterceptorParams() public method

Parse Dispatcher params to array
public getInterceptorParams ( Phalcon\Mvc\DispatcherInterface $dispatcher ) : array
$dispatcher Phalcon\Mvc\DispatcherInterface
return array
    public function getInterceptorParams(DispatcherInterface $dispatcher)
    {
        $interceptorConfig = strtolower($dispatcher->getParam(self::INTERCEPTOR_KEY));
        if (!$interceptorConfig) {
            return array();
        }
        parse_str($interceptorConfig, $interceptorParams);
        //Make default
        $interceptorParams = array_merge(array('lifetime' => 0, 'methods' => 'get', 'ignore_query_keys' => '_', 'jsonp_callback_key' => 'callback', 'format' => 'text', 'cors_enabled' => false), $interceptorParams);
        $lifetime = $interceptorParams['lifetime'] = (int) $interceptorParams['lifetime'];
        if ($lifetime <= 0) {
            return array();
        }
        $methodsAllow = $interceptorParams['methods'] ? explode('|', $interceptorParams['methods']) : array('get');
        $interceptorParams['methods'] = $methodsAllow;
        $ignoreQueryKeys = $interceptorParams['ignore_query_keys'] ? explode('|', $interceptorParams['ignore_query_keys']) : array();
        $interceptorParams['ignore_query_keys'] = $ignoreQueryKeys;
        $interceptorParams['cors_enabled'] = (bool) $interceptorParams['cors_enabled'];
        return $interceptorParams;
    }

Usage Example

Example #1
0
 public function testDispatcherParams()
 {
     $dispatcher = new Dispatcher();
     $interceptor = new DispatchInterceptor();
     $this->assertEquals($interceptor->getInterceptorParams($dispatcher), array());
     $dispatcher = new Dispatcher();
     $dispatcher->setParams(array('_dispatch_cache' => 'lifetime=-1'));
     $this->assertEquals($interceptor->getInterceptorParams($dispatcher), array());
     $dispatcher = new Dispatcher();
     $dispatcher->setParams(array('_dispatch_cache' => 'lifetime=60'));
     $this->assertEquals($interceptor->getInterceptorParams($dispatcher), array('lifetime' => 60, 'methods' => array('get'), 'ignore_query_keys' => array('_'), 'jsonp_callback_key' => 'callback', 'format' => 'text'));
     $dispatcher = new Dispatcher();
     $dispatcher->setParams(array('_dispatch_cache' => 'lifetime=100&methods=get|post&ignore_query_keys=api_key|_&jsonp_callback_key=callback&format=jsonp'));
     $this->assertEquals($interceptor->getInterceptorParams($dispatcher), array('lifetime' => 100, 'methods' => array('get', 'post'), 'ignore_query_keys' => array('api_key', '_'), 'jsonp_callback_key' => 'callback', 'format' => 'jsonp'));
 }