Exemplo n.º 1
0
 public static function extract_param(array $parammap, array $spec)
 {
     $paramname = $spec['name'];
     $required = $spec['required'];
     $default = null;
     #  = $spec['default'];
     $param = null;
     #
     $has_default = array_key_exists('default', $spec);
     if ($has_default) {
         $default = $spec['default'];
     }
     $has_param = array_key_exists($paramname, $parammap);
     if ($has_param) {
         $param = $parammap[$paramname];
     }
     if ($required && !$has_param) {
         Dispatch::Exception('Parameters_Required', 'required parameter ' . $paramname . ' was not found');
     }
     if (!$has_param && $has_default) {
         return $default;
     }
     if (!$has_param && !$has_default) {
         return null;
     }
     return $param;
 }
Exemplo n.º 2
0
 public function action($request)
 {
     $action = $this->action;
     if (!isset($this->action)) {
         Dispatch::Exception('Dispatch', 'Cannot get action for ' . get_class($this) . ', no action specified in advance, did you remember to call ->execute( $action ) ?');
     }
     $action->set_param('rule_class', array('value' => get_class($this)));
     $action->set_param('request', array('value' => $request));
     $action->set_param('dispatcher', array('value' => &$this->dispatcher));
     $action->set_param('rule', array('value' => $this));
     return $action;
 }