Exemple #1
0
 /**
  * Fetch values for all options (or selected options) from the given WebRequest, making them
  * available for accessing with getValue() or consumeValue() etc.
  *
  * @param WebRequest $r The request to fetch values from
  * @param array $optionKeys Which options to fetch the values for (default:
  *     all of them). Note that passing an empty array will also result in
  *     values for all keys being fetched.
  * @throws MWException If the type of any option is invalid
  */
 public function fetchValuesFromRequest(WebRequest $r, $optionKeys = null)
 {
     if (!$optionKeys) {
         $optionKeys = array_keys($this->options);
     }
     foreach ($optionKeys as $name) {
         $default = $this->options[$name]['default'];
         $type = $this->options[$name]['type'];
         switch ($type) {
             case self::BOOL:
                 $value = $r->getBool($name, $default);
                 break;
             case self::INT:
                 $value = $r->getInt($name, $default);
                 break;
             case self::FLOAT:
                 $value = $r->getFloat($name, $default);
                 break;
             case self::STRING:
                 $value = $r->getText($name, $default);
                 break;
             case self::INTNULL:
                 $value = $r->getIntOrNull($name);
                 break;
             default:
                 throw new MWException('Unsupported datatype');
         }
         if ($value !== null) {
             $this->options[$name]['value'] = $value === $default ? null : $value;
         }
     }
 }