Dispatches a request based on a request object (an instance of `lithium\console\Request`).
If `$request` is `null`, a new request object is instantiated based on the value of the `'request'` key in the `$_classes` array.

Parameters

  • object $request An instance of a request object with console request information. If `null`, an instance will be created.
  • array $options

Returns

object The command action result which is an instance of `lithium\console\Response`.

Source

						public static function run($request = null, $options = array()) {
		$defaults = array('request' => array());
		$options += $defaults;
		$classes = static::$_classes;
		$params = compact('request', 'options');

		return static::_filter(__FUNCTION__, $params, function($self, $params) use ($classes) {
			$request = $params['request'];
			$options = $params['options'];
			$router = $classes['router'];
			$request = $request ?: new $classes['request']($options['request']);
			$request->params = $router::parse($request);
			$params = $self::applyRules($request->params);
			Environment::set($request);
			try {
				$callable = $self::invokeMethod('_callable', array($request, $params, $options));
				return $self::invokeMethod('_call', array($callable, $request, $params));
			} catch (UnexpectedValueException $e) {
				return (object) array('status' => $e->getMessage() . "\n");
			}
		});
	}