src/classes/CCRequest.php
public function perform() 
	{	
		// set the input
		if ( !is_null( $this->input ) ) 
		{
			CCIn::instance( $this->input );
		} else {
			CCIn::instance( CCServer::instance() );
		}
		
		// set current request
		static::$_current =& $this;
		
		// route is invalid show 404
		if ( !$this->route instanceof CCRoute ) 
		{
			$this->route = CCRouter::resolve( '#404' );
		}
		
		/*
		 * call wake events
		 * if one event returns an response all other calls will be skipped also events!
		 */
		foreach( CCRouter::events_matching( 'wake', $this->route->uri ) as $callback )
		{
			if ( ( $return = CCContainer::call( $callback ) ) instanceof CCResponse )
			{
				$this->response = $return; return $this;
			}
		}
		
		/*
		 * a closure
		 */
		if ( !is_array( $this->route->callback ) && is_callable( $this->route->callback ) ) 
		{	
			// execute and capture the output
			ob_start();
			// run the closure 
			$return = call_user_func_array( $this->route->callback, $this->route->params );
			// catch the output
			$output = ob_get_clean();
			
			// do we got a response?
			if ( !$return instanceof CCResponse ) 
			{
				// if not create one with the captured output
				$return = CCResponse::create( $output );
			}
		}
		/*
		 * a callback
		 */
		elseif ( is_callable( $this->route->callback ) )
		{
			// execute the callback and get the return
			$return = call_user_func_array( $this->route->callback, array( $this->route->action, $this->route->params ) );
			
			// do we got a response?
			if ( !$return instanceof CCResponse ) 
			{
				// if not create one with the return as string
				$return = CCResponse::create( (string) $return );
			}
		}
		/*
		 * 404 error if nothing
		 */
		else 
		{
			$return = CCResponse::error( 404 );
		}
		
		// set the response
		$this->response = $return;
		
		/*
		 * call sleep events
		 * if one event returns an response all other calls will be skipped also events!
		 */
		foreach( CCRouter::events_matching( 'sleep', $this->route->uri ) as $callback )
		{
			if ( $return = CCContainer::call( $callback, $this->response ) instanceof CCResponse )
			{
				$this->response = $return; return $this;
			}
		}
		
		return $this;
	}
public function perform() 
	{	
		// set the input
		if ( !is_null( $this->input ) ) 
		{
			CCIn::instance( $this->input );
		} else {
			CCIn::instance( CCServer::instance() );
		}
		
		// set current request
		static::$_current =& $this;
		
		// route is invalid show 404
		if ( !$this->route instanceof CCRoute ) 
		{
			$this->route = CCRouter::resolve( '#404' );
		}
		
		/*
		 * call wake events
		 * if one event returns an response all other calls will be skipped also events!
		 */
		foreach( CCRouter::events_matching( 'wake', $this->route->uri ) as $callback )
		{
			if ( ( $return = CCContainer::call( $callback ) ) instanceof CCResponse )
			{
				$this->response = $return; return $this;
			}
		}
		
		/*
		 * a closure
		 */
		if ( !is_array( $this->route->callback ) && is_callable( $this->route->callback ) ) 
		{	
			// execute and capture the output
			ob_start();
			// run the closure 
			$return = call_user_func_array( $this->route->callback, $this->route->params );
			// catch the output
			$output = ob_get_clean();
			
			// do we got a response?
			if ( !$return instanceof CCResponse ) 
			{
				// if not create one with the captured output
				$return = CCResponse::create( $output );
			}
		}
		/*
		 * a callback
		 */
		elseif ( is_callable( $this->route->callback ) )
		{
			// execute the callback and get the return
			$return = call_user_func_array( $this->route->callback, array( $this->route->action, $this->route->params ) );
			
			// do we got a response?
			if ( !$return instanceof CCResponse ) 
			{
				// if not create one with the return as string
				$return = CCResponse::create( (string) $return );
			}
		}
		/*
		 * 404 error if nothing
		 */
		else 
		{
			$return = CCResponse::error( 404 );
		}
		
		// set the response
		$this->response = $return;
		
		/*
		 * call sleep events
		 * if one event returns an response all other calls will be skipped also events!
		 */
		foreach( CCRouter::events_matching( 'sleep', $this->route->uri ) as $callback )
		{
			if ( $return = CCContainer::call( $callback, $this->response ) instanceof CCResponse )
			{
				$this->response = $return; return $this;
			}
		}
		
		return $this;
	}
public function perform ( ) { // set the input if ( ! is_null ( $ this -> input ) ) { CCIn :: instance ( $ this -> input ) ; } else { CCIn :: instance ( CCServer :: instance ( ) ) ; } // set current request static :: $ _current = & $ this ; // route is invalid show 404 if ( ! $ this -> route instanceof CCRoute ) { $ this -> route = CCRouter :: resolve ( '#404' ) ; } /*
		 * call wake events
		 * if one event returns an response all other calls will be skipped also events!
		 */ foreach ( CCRouter :: events_matching ( 'wake' , $ this -> route -> uri ) as $ callback ) { if ( ( $ return = CCContainer :: call ( $ callback ) ) instanceof CCResponse ) { $ this -> response = $ return ; return $ this ; } } /*
		 * a closure
		 */ if ( ! is_array ( $ this -> route -> callback ) && is_callable ( $ this -> route -> callback ) ) { // execute and capture the output ob_start ( ) ; // run the closure  $ return = call_user_func_array ( $ this -> route -> callback , $ this -> route -> params ) ; // catch the output $ output = ob_get_clean ( ) ; // do we got a response? if ( ! $ return instanceof CCResponse ) { // if not create one with the captured output $ return = CCResponse :: create ( $ output ) ; } } /*
		 * a callback
		 */ elseif ( is_callable ( $ this -> route -> callback ) ) { // execute the callback and get the return $ return = call_user_func_array ( $ this -> route -> callback , array ( $ this -> route -> action , $ this -> route -> params ) ) ; // do we got a response? if ( ! $ return instanceof CCResponse ) { // if not create one with the return as string $ return = CCResponse :: create ( ( string ) $ return ) ; } } /*
		 * 404 error if nothing
		 */ else { $ return = CCResponse :: error ( 404 ) ; } // set the response $ this -> response = $ return ; /*
		 * call sleep events
		 * if one event returns an response all other calls will be skipped also events!
		 */ foreach ( CCRouter :: events_matching ( 'sleep' , $ this -> route -> uri ) as $ callback ) { if ( $ return = CCContainer :: call ( $ callback , $ this -> response ) instanceof CCResponse ) { $ this -> response = $ return ; return $ this ; } } return $ this ; }
Execute the Request

@param array 	$action
@param array 	$params

@return self
Execute the Request