lithium\console\Dispatcher::run PHP Method

run() public static method

If $request is null, a new request object is instantiated based on the value of the 'request' key in the $_classes array.
public static run ( object $request = null, array $options = [] ) : object
$request object An instance of a request object with console request information. If `null`, an instance will be created.
$options array
return object The command action result which is an instance of `lithium\console\Response`.
    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");
            }
        });
    }

Usage Example

Example #1
0
 public function testRunWithCamelizingAction()
 {
     $result = Dispatcher::run(new Request(array('args' => array('\\lithium\\tests\\mocks\\console\\command\\MockCommandHelp', 'sample-task-with-optional-args'))));
     $this->assertTrue($result);
     $result = Dispatcher::run(new Request(array('args' => array('\\lithium\\tests\\mocks\\console\\command\\MockCommandHelp', 'sample_task_with_optional_args'))));
     $this->assertTrue($result);
 }
All Usage Examples Of lithium\console\Dispatcher::run