| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link http://cakephp.org CakePHP(tm) Project
- * @package Cake.Routing
- * @since CakePHP(tm) v 2.2
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
-
- App::uses('CakeEventListener', 'Event');
-
- /**
- * This abstract class represents a filter to be applied to a dispatcher cycle. It acts as as
- * event listener with the ability to alter the request or response as needed before it is handled
- * by a controller or after the response body has already been built.
- *
- * @package Cake.Routing
- */
- abstract class DispatcherFilter implements CakeEventListener {
-
- /**
- * Default priority for all methods in this filter
- *
- * @var int
- */
- public $priority = 10;
-
- /**
- * Settings for this filter
- *
- * @var array
- */
- public $settings = array();
-
- /**
- * Constructor.
- *
- * @param array $settings Configuration settings for the filter.
- */
- public function __construct($settings = array()) {
- $this->settings = Hash::merge($this->settings, $settings);
- }
-
- /**
- * Returns the list of events this filter listens to.
- * Dispatcher notifies 2 different events `Dispatcher.before` and `Dispatcher.after`.
- * By default this class will attach `preDispatch` and `postDispatch` method respectively.
- *
- * Override this method at will to only listen to the events you are interested in.
- *
- * @return array
- */
- public function implementedEvents() {
- return array(
- 'Dispatcher.beforeDispatch' => array('callable' => 'beforeDispatch', 'priority' => $this->priority),
- 'Dispatcher.afterDispatch' => array('callable' => 'afterDispatch', 'priority' => $this->priority),
- );
- }
-
- /**
- * Method called before the controller is instantiated and called to serve a request.
- * If used with default priority, it will be called after the Router has parsed the
- * URL and set the routing params into the request object.
- *
- * If a CakeResponse object instance is returned, it will be served at the end of the
- * event cycle, not calling any controller as a result. This will also have the effect of
- * not calling the after event in the dispatcher.
- *
- * If false is returned, the event will be stopped and no more listeners will be notified.
- * Alternatively you can call `$event->stopPropagation()` to achieve the same result.
- *
- * @param CakeEvent $event container object having the `request`, `response` and `additionalParams`
- * keys in the data property.
- * @return CakeResponse|bool
- */
- public function beforeDispatch(CakeEvent $event) {
- }
-
- /**
- * Method called after the controller served a request and generated a response.
- * It is possible to alter the response object at this point as it is not sent to the
- * client yet.
- *
- * If false is returned, the event will be stopped and no more listeners will be notified.
- * Alternatively you can call `$event->stopPropagation()` to achieve the same result.
- *
- * @param CakeEvent $event container object having the `request` and `response`
- * keys in the data property.
- * @return mixed boolean to stop the event dispatching or null to continue
- */
- public function afterDispatch(CakeEvent $event) {
- }
- }
|