extensions() public static method

To initially set extensions use Router::parseExtensions() To add more see setExtensions()
public static extensions ( ) : array
return array Array of extensions Router is configured to parse.
Example #1
0
 /**
  * __construct
  *
  * @param CakeRequest $request
  * @param CakeResponse $response
  */
 public function __construct($request = null, $response = null)
 {
     parent::__construct($request, $response);
     if (count(Router::extensions())) {
         $this->components[] = 'RequestHandler';
     }
     $this->constructClasses();
     $this->Components->trigger('initialize', array(&$this));
     $this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
     if (isset($this->RequestHandler)) {
         $this->RequestHandler->startup($this);
     }
 }
 /**
  * __construct
  *
  * @param CakeRequest $request
  * @param CakeResponse $response
  */
 public function __construct($request = null, $response = null)
 {
     parent::__construct($request, $response);
     $this->constructClasses();
     if (count(Router::extensions()) && !$this->Components->attached('RequestHandler')) {
         $this->RequestHandler = $this->Components->load('RequestHandler');
     }
     if ($this->Components->enabled('Auth')) {
         $this->Components->disable('Auth');
     }
     if ($this->Components->enabled('Security')) {
         $this->Components->disable('Security');
     }
     $this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
 }
Example #3
0
 /**
  * __construct
  *
  * @param CakeRequest $request
  * @param CakeResponse $response
  */
 public function __construct($request = null, $response = null)
 {
     parent::__construct($request, $response);
     if (count(Router::extensions()) && !array_key_exists('RequestHandler', $this->components) && !in_array('RequestHandler', $this->components, true)) {
         $this->components[] = 'RequestHandler';
     }
     $this->constructClasses();
     if ($this->Components->enabled('Auth')) {
         $this->Components->disable('Auth');
     }
     if ($this->Components->enabled('Security')) {
         $this->Components->disable('Security');
     }
     $this->startupProcess();
     $this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
 }
 /**
  * __construct
  *
  * @param CakeRequest $request
  * @param CakeResponse $response
  */
 public function __construct(CakeRequest $request, CakeResponse $response)
 {
     parent::__construct($request, $response);
     if (count(Router::extensions())) {
         $this->components[] = 'RequestHandler';
     }
     try {
         $this->constructClasses();
         $this->startupProcess();
     } catch (CakeException $e) {
         CakeLog::write('critical', __d('croogo', 'Errors in CakeErrorController: %s', $e->getMessage()));
     }
     $this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
     if (isset($this->RequestHandler)) {
         $this->RequestHandler->startup($this);
     }
 }
 public function __construct($request = null, $response = null)
 {
     parent::__construct($request, $response);
     $this->_mergeControllerVars();
     unset($this->components['Acl']);
     unset($this->components['Auth']);
     $this->Components->init($this);
     if ($this->uses) {
         $this->uses = (array) $this->uses;
         list(, $this->modelClass) = pluginSplit(current($this->uses));
     }
     if (count(Router::extensions()) && !$this->Components->attached('RequestHandler')) {
         $this->RequestHandler = $this->Components->load('RequestHandler');
     }
     if ($this->Components->enabled('Auth')) {
         $this->Components->disable('Auth');
     }
     if ($this->Components->enabled('Security')) {
         $this->Components->disable('Security');
     }
     $this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
 }
Example #6
0
 /**
  * testExtensionParsingSetting method
  *
  * @return void
  */
 public function testExtensionParsingSetting()
 {
     $this->assertEquals(array(), Router::extensions());
     Router::parseExtensions('rss');
     $this->assertEquals(Router::extensions(), array('rss'));
 }
 /**
  * Test that a type mismatch doesn't incorrectly set the ext
  *
  * @return void
  */
 public function testInitializeContentTypeAndExtensionMismatch()
 {
     $this->assertNull($this->RequestHandler->ext);
     $extensions = Router::extensions();
     Router::parseExtensions('xml');
     $this->Controller->request = $this->getMock('CakeRequest');
     $this->Controller->request->expects($this->any())->method('accepts')->will($this->returnValue(array('application/json')));
     $this->RequestHandler->initialize($this->Controller);
     $this->assertNull($this->RequestHandler->ext);
     call_user_func_array(array('Router', 'parseExtensions'), $extensions);
 }
 /**
  * Set the extension based on the accept headers.
  * Compares the accepted types and configured extensions.
  * If there is one common type, that is assigned as the ext/content type
  * for the response.
  *
  * If html is one of the preferred types, no content type will be set, this
  * is to avoid issues with browsers that prefer html and several other content types.
  *
  * @return void
  */
 protected function _setExtension()
 {
     $accept = $this->request->parseAccept();
     if (empty($accept)) {
         return;
     }
     $extensions = Router::extensions();
     $preferred = array_shift($accept);
     $preferredTypes = $this->response->mapType($preferred);
     if (!in_array('xhtml', $preferredTypes) && !in_array('html', $preferredTypes)) {
         $similarTypes = array_intersect($extensions, $preferredTypes);
         if (count($similarTypes) === 1) {
             $this->ext = array_shift($similarTypes);
         }
     }
 }
Example #9
0
 /**
  * testSetExtensions method
  *
  * @return void
  */
 public function testSetExtensions()
 {
     Router::setExtensions(array('rss'));
     $this->assertEquals(array('rss'), Router::extensions());
     require CAKE . 'Config' . DS . 'routes.php';
     $result = Router::parse('/posts.rss');
     $this->assertFalse(isset($result['ext']));
     Router::parseExtensions();
     $result = Router::parse('/posts.rss');
     $this->assertEquals('rss', $result['ext']);
     $result = Router::parse('/posts.xml');
     $this->assertFalse(isset($result['ext']));
     Router::setExtensions(array('xml'));
     $result = Router::extensions();
     $this->assertEquals(array('rss', 'xml'), $result);
     $result = Router::parse('/posts.xml');
     $this->assertEquals('xml', $result['ext']);
     $result = Router::setExtensions(array('pdf'), false);
     $this->assertEquals(array('pdf'), $result);
 }
 /**
  * Set the extension based on the accept headers.
  * Compares the accepted types and configured extensions.
  * If there is one common type, that is assigned as the ext/content type
  * for the response.
  * Type with the highest weight will be set. If the highest weight has more
  * then one type matching the extensions, the order in which extensions are specified
  * determines which type will be set.
  *
  * If html is one of the preferred types, no content type will be set, this
  * is to avoid issues with browsers that prefer html and several other content types.
  *
  * @return void
  */
 protected function _setExtension()
 {
     $accept = $this->request->parseAccept();
     if (empty($accept)) {
         return;
     }
     $accepts = $this->response->mapType($this->request->parseAccept());
     $preferedTypes = current($accepts);
     if (array_intersect($preferedTypes, array('html', 'xhtml'))) {
         return null;
     }
     $extensions = Router::extensions();
     foreach ($accepts as $types) {
         $ext = array_intersect($extensions, $types);
         if ($ext) {
             $this->ext = current($ext);
             break;
         }
     }
 }
Example #11
0
<?php

Router::connect('/admin', array('controller' => 'Welcome', 'action' => 'index', 'admin' => true, 'plugin' => 'trois'));
Router::connect('/sitemap', array('controller' => 'Sitemap', 'action' => 'index', 'admin' => false, 'plugin' => 'trois'));
$extentions = Router::extensions();
if (empty($extentions)) {
    Router::parseExtensions('json', 'xml');
} else {
    if (array_search('json', $extentions) === false) {
        array_push($extentions, 'json');
    }
    if (array_search('xml', $extentions) === false) {
        array_push($extentions, 'xml');
    }
    call_user_func_array('Router::parseExtensions', $extentions);
}
Example #12
0
 /**
  * Initializes the component, gets a reference to Controller::$parameters, and
  * checks to see if a file extension has been parsed by the Router.  Or if the 
  * HTTP_ACCEPT_TYPE is set to a single value that is a supported extension and mapped type.
  * If yes, RequestHandler::$ext is set to that value
  *
  * @param object $controller A reference to the controller
  * @param array $settings Array of settings to _set().
  * @return void
  * @see Router::parseExtensions()
  */
 public function initialize($controller, $settings = array())
 {
     $this->request = $controller->request;
     $this->response = $controller->response;
     if (isset($this->request->params['url']['ext'])) {
         $this->ext = $this->request->params['url']['ext'];
     }
     if (empty($this->ext)) {
         $accepts = $this->request->accepts();
         $extensions = Router::extensions();
         if (count($accepts) == 1) {
             $mapped = $this->mapType($accepts[0]);
             if (in_array($mapped, $extensions)) {
                 $this->ext = $mapped;
             }
         }
     }
     $this->params = $controller->params;
     $this->_set($settings);
 }