コード例 #1
0
ファイル: NullableField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $parameter
  * @param mixed $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $innerParameter = $this->getInnerParameter($parameter);
     if (!$this->reader->has($innerParameter) || !$serialized || strtolower($serialized) == 'n') {
         return null;
     }
     $field = $this->getField($innerParameter);
     return $field->inflate($innerParameter, $this->reader->read($innerParameter));
 }
コード例 #2
0
ファイル: BreadCrumbsTrail.php プロジェクト: rtens/domin
 private function readRawParameters(Action $action)
 {
     $values = [];
     foreach ($action->parameters() as $parameter) {
         if ($this->reader->has($parameter)) {
             $values[$parameter->getName()] = $this->reader->read($parameter);
         }
     }
     return $values;
 }
コード例 #3
0
ファイル: HtmlField.php プロジェクト: jonfm/domin
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return Html
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $lines = [];
     $line = $serialized;
     while ($line) {
         $lines[] = $line;
         $lineParameter = $this->lineParameter($parameter, count($lines));
         $line = $this->reader->has($lineParameter) ? $this->reader->read($lineParameter) : null;
     }
     return new Html(implode(PHP_EOL, $lines));
 }
コード例 #4
0
ファイル: Executor.php プロジェクト: rtens/domin
 private function readParameters(Action $action)
 {
     $failed = [];
     $params = [];
     foreach ($action->parameters() as $parameter) {
         try {
             if ($this->paramReader->has($parameter)) {
                 $inflated = $this->fields->getField($parameter)->inflate($parameter, $this->paramReader->read($parameter));
                 if ($parameter->getType()->is($inflated)) {
                     $params[$parameter->getName()] = $inflated;
                     continue;
                 }
             }
             if ($parameter->isRequired()) {
                 throw new \Exception("[{$parameter->getName()}] is required.");
             }
         } catch (\Exception $e) {
             $failed[$parameter->getName()] = $e;
         }
     }
     return [$params, $failed];
 }
コード例 #5
0
ファイル: Executor.php プロジェクト: jonfm/domin
 private function readParameters(Action $action)
 {
     $params = [];
     $missing = [];
     foreach ($action->parameters() as $parameter) {
         if ($this->paramReader->has($parameter)) {
             $inflated = $this->fields->getField($parameter)->inflate($parameter, $this->paramReader->read($parameter));
             if ($parameter->getType()->is($inflated)) {
                 $params[$parameter->getName()] = $inflated;
             } else {
                 if ($parameter->isRequired()) {
                     $missing[] = $parameter->getName();
                 }
             }
         } else {
             if ($parameter->isRequired()) {
                 $missing[] = $parameter->getName();
             }
         }
     }
     return [$params, $missing];
 }
コード例 #6
0
ファイル: ActionForm.php プロジェクト: rtens/domin
 private function readParameters(ParameterReader $reader, FieldRegistry $fields, Action $action)
 {
     $values = ['inflated' => [], 'errors' => []];
     foreach ($action->parameters() as $parameter) {
         if ($reader->has($parameter)) {
             $field = $fields->getField($parameter);
             try {
                 $values['inflated'][$parameter->getName()] = $field->inflate($parameter, $reader->read($parameter));
             } catch (\Exception $e) {
                 $values['errors'][$parameter->getName()] = $e;
             }
         }
     }
     return $values;
 }
コード例 #7
0
 private function given_HasTheValue($parameterName, $value)
 {
     $parameter = $this->parameter($parameterName);
     Mockster::stub($this->reader->has($parameter))->will()->return_(true);
     Mockster::stub($this->reader->read($parameter))->will()->return_($value);
 }
コード例 #8
0
ファイル: ExecuteActionSpec.php プロジェクト: jonfm/domin
 protected function before()
 {
     $this->reader = Mockster::of(ParameterReader::class);
     Mockster::stub($this->reader->read(Argument::any()))->will()->forwardTo(function (Parameter $parameter) {
         return $this->parameters[$parameter->getName()];
     });
     Mockster::stub($this->reader->has(Argument::any()))->will()->forwardTo(function (Parameter $parameter) {
         return array_key_exists($parameter->getName(), $this->parameters);
     });
 }