当前位置: 首页>>代码示例>>PHP>>正文


PHP Parameter::getType方法代码示例

本文整理汇总了PHP中Guzzle\Service\Description\Parameter::getType方法的典型用法代码示例。如果您正苦于以下问题:PHP Parameter::getType方法的具体用法?PHP Parameter::getType怎么用?PHP Parameter::getType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Guzzle\Service\Description\Parameter的用法示例。


在下文中一共展示了Parameter::getType方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: addXml

 protected function addXml(\XMLWriter $xmlWriter, Parameter $param, $value)
 {
     if ($value === null) {
         return;
     }
     $value = $param->filter($value);
     $type = $param->getType();
     $name = $param->getWireName();
     $prefix = null;
     $namespace = $param->getData('xmlNamespace');
     if (false !== strpos($name, ':')) {
         list($prefix, $name) = explode(':', $name, 2);
     }
     if ($type == 'object' || $type == 'array') {
         if (!$param->getData('xmlFlattened')) {
             $xmlWriter->startElementNS(null, $name, $namespace);
         }
         if ($param->getType() == 'array') {
             $this->addXmlArray($xmlWriter, $param, $value);
         } elseif ($param->getType() == 'object') {
             $this->addXmlObject($xmlWriter, $param, $value);
         }
         if (!$param->getData('xmlFlattened')) {
             $xmlWriter->endElement();
         }
         return;
     }
     if ($param->getData('xmlAttribute')) {
         $this->writeAttribute($xmlWriter, $prefix, $name, $namespace, $value);
     } else {
         $this->writeElement($xmlWriter, $prefix, $name, $namespace, $value);
     }
 }
开发者ID:Ryu0621,项目名称:SaNaVi,代码行数:33,代码来源:XmlVisitor.php

示例2: customResolver

 /**
  * Map nested parameters into the location_key based parameters
  *
  * @param array    $value  Value to map
  * @param Parameter $param  Parameter that holds information about the current key
  * @param array    $query  Built up query string values
  * @param string   $prefix String to prepend to sub query values
  */
 protected function customResolver($value, Parameter $param, array &$query, $prefix = '')
 {
     if ($param->getType() == 'object') {
         foreach ($value as $name => $v) {
             if ($subParam = $param->getProperty($name)) {
                 $key = $prefix . '.' . $subParam->getWireName();
                 if (is_array($v)) {
                     $this->customResolver($v, $subParam, $query, $key);
                 } else {
                     $query[$key] = $v;
                 }
             }
         }
     } elseif ($param->getType() == 'array') {
         $offset = $param->getData('offset') ?: 0;
         foreach ($value as $index => $v) {
             $index += $offset;
             if (is_array($v) && ($items = $param->getItems())) {
                 $this->customResolver($v, $items, $query, $prefix . '.' . $index);
             } else {
                 $query[$prefix . '.' . $index] = $v;
             }
         }
     } else {
         $query[$prefix] = $value;
     }
 }
开发者ID:romainneutron,项目名称:aws-sdk-php,代码行数:35,代码来源:AwsQueryVisitor.php

示例3: recursiveProcess

 /**
  * Recursively process a parameter while applying filters
  *
  * @param Parameter $param API parameter being validated
  * @param mixed     $value Value to validate and process. The value may change during this process.
  */
 protected function recursiveProcess(Parameter $param, &$value)
 {
     if ($value === null) {
         return;
     }
     if (is_array($value)) {
         $type = $param->getType();
         if ($type == 'array') {
             foreach ($value as &$item) {
                 $this->recursiveProcess($param->getItems(), $item);
             }
         } elseif ($type == 'object' && !isset($value[0])) {
             // On the above line, we ensure that the array is associative and not numerically indexed
             if ($properties = $param->getProperties()) {
                 foreach ($properties as $property) {
                     $name = $property->getName();
                     $key = $property->getWireName();
                     if (isset($value[$key])) {
                         $this->recursiveProcess($property, $value[$key]);
                         if ($key != $name) {
                             $value[$name] = $value[$key];
                             unset($value[$key]);
                         }
                     }
                 }
             }
         }
     }
     $value = $param->filter($value);
 }
开发者ID:creazy412,项目名称:vmware-win10-c65-drupal7,代码行数:36,代码来源:JsonVisitor.php

示例4: resolveRecursively

protected function resolveRecursively(array $value, Parameter $param)
{
foreach ($value as $name => &$v) {
switch ($param->getType()) {
case 'object':
if ($subParam = $param->getProperty($name)) {
$key = $subParam->getWireName();
$value[$key] = $this->prepareValue($v, $subParam);
if ($name != $key) {
unset($value[$name]);
}
} elseif ($param->getAdditionalProperties() instanceof Parameter) {
$v = $this->prepareValue($v, $param->getAdditionalProperties());
}
break;
case 'array':
if ($items = $param->getItems()) {
$v = $this->prepareValue($v, $items);
}
break;
}
}

return $param->filter($value);
}
开发者ID:Ryu0621,项目名称:SaNaVi,代码行数:25,代码来源:AbstractRequestVisitor.php

示例5: visit

 /**
  * {@inheritdoc}
  */
 public function visit(CommandInterface $command, Response $response, Parameter $param, &$value, $context = null)
 {
     if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) {
         $this->processPrefixedHeaders($response, $param, $value);
     } else {
         $value[$param->getName()] = (string) $response->getHeader($param->getWireName());
     }
 }
开发者ID:KANU82,项目名称:guzzle,代码行数:11,代码来源:HeaderVisitor.php

示例6: visit

 /**
  * {@inheritdoc}
  */
 public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
 {
     if ($param->getType() == 'object' && $param->getAdditionalProperties() instanceof Parameter) {
         $this->addPrefixedHeaders($request, $param, $value);
     } else {
         $request->setHeader($param->getWireName(), $value);
     }
 }
开发者ID:xkeygmbh,项目名称:ifresco-php,代码行数:11,代码来源:HeaderVisitor.php

示例7: customResolver

 /**
  * Map nested parameters into the location_key based parameters
  *
  * @param array     $value  Value to map
  * @param Parameter $param  Parameter that holds information about the current key
  * @param array     $query  Built up query string values
  * @param string    $prefix String to prepend to sub query values
  */
 protected function customResolver($value, Parameter $param, array &$query, $prefix = '')
 {
     switch ($param->getType()) {
         case 'object':
             $this->resolveObject($param, $value, $prefix, $query);
             break;
         case 'array':
             $this->resolveArray($param, $value, $prefix, $query);
             break;
         default:
             $query[$prefix] = $param->filter($value);
     }
 }
开发者ID:cstuder,项目名称:nagios-plugins,代码行数:21,代码来源:AwsQueryVisitor.php

示例8: createEmbeddedModel

 /**
  * {@inheritdoc}
  */
 public function createEmbeddedModel(CommandInterface $command, Parameter $structure, array $data)
 {
     if ($structure->getType() === 'array') {
         // we're actually building an array of models
         return $this->createEmbeddedModelArray($command, $structure, $data);
     }
     if (isset($structure->extends)) {
         $structure->setName($structure->extends);
     }
     $embeddedCommand = $this->factory->factory($command, $data);
     $processedData = $this->process($embeddedCommand, $structure, $data);
     return new Model($processedData, $structure);
 }
开发者ID:kameshwariv,项目名称:testexample,代码行数:16,代码来源:ModelBuilder.php

示例9: recursiveProcess

 protected function recursiveProcess(Parameter $param, &$value)
 {
     $type = $param->getType();
     if (!is_array($value)) {
         if ($type == 'array') {
             $this->recursiveProcess($param->getItems(), $value);
             $value = array($value);
         }
     } elseif ($type == 'object') {
         $this->processObject($param, $value);
     } elseif ($type == 'array') {
         $this->processArray($param, $value);
     }
     if ($value !== null) {
         $value = $param->filter($value);
     }
 }
开发者ID:Ryu0621,项目名称:SaNaVi,代码行数:17,代码来源:XmlVisitor.php

示例10: recursiveProcess

 /**
  * Recursively process a parameter while applying filters
  *
  * @param Parameter $param API parameter being processed
  * @param mixed     $value Value to validate and process. The value may change during this process.
  */
 protected function recursiveProcess(Parameter $param, &$value)
 {
     $type = $param->getType();
     if (!is_array($value)) {
         if ($type == 'array') {
             // Cast to an array if the value was a string, but should be an array
             $this->recursiveProcess($param->getItems(), $value);
             $value = array($value);
         }
     } elseif ($type == 'object') {
         $this->processObject($param, $value);
     } elseif ($type == 'array') {
         $this->processArray($param, $value);
     }
     if ($value !== null) {
         $value = $param->filter($value);
     }
 }
开发者ID:creazy412,项目名称:vmware-win10-c65-drupal7,代码行数:24,代码来源:XmlVisitor.php

示例11: recursiveProcess

protected function recursiveProcess(Parameter $param, &$value)
{
if ($value === null) {
return;
}

if (is_array($value)) {
$type = $param->getType();
if ($type == 'array') {
foreach ($value as &$item) {
$this->recursiveProcess($param->getItems(), $item);
}
} elseif ($type == 'object' && !isset($value[0])) {

 $knownProperties = array();
if ($properties = $param->getProperties()) {
foreach ($properties as $property) {
$name = $property->getName();
$key = $property->getWireName();
$knownProperties[$name] = 1;
if (isset($value[$key])) {
$this->recursiveProcess($property, $value[$key]);
if ($key != $name) {
$value[$name] = $value[$key];
unset($value[$key]);
}
}
}
}


 if ($param->getAdditionalProperties() === false) {
$value = array_intersect_key($value, $knownProperties);
} elseif (($additional = $param->getAdditionalProperties()) !== true) {

 foreach ($value as &$v) {
$this->recursiveProcess($additional, $v);
}
}
}
}

$value = $param->filter($value);
}
开发者ID:Ryu0621,项目名称:SaNaVi,代码行数:44,代码来源:JsonVisitor.php

示例12: recursiveProcess

 /**
  * Recursively process a parameter while applying filters
  *
  * @param Parameter $param API parameter being validated
  * @param mixed     $value Value to validate and process. The value may change during this process.
  */
 protected function recursiveProcess(Parameter $param, &$value)
 {
     if ($value === null) {
         return;
     }
     if (is_array($value)) {
         $type = $param->getType();
         if ($type == 'array') {
             foreach ($value as &$item) {
                 $this->recursiveProcess($param->getItems(), $item);
             }
         } elseif ($type == 'object' && !isset($value[0])) {
             // On the above line, we ensure that the array is associative and not numerically indexed
             $knownProperties = array();
             if ($properties = $param->getProperties()) {
                 foreach ($properties as $property) {
                     $name = $property->getName();
                     $key = $property->getWireName();
                     $knownProperties[$name] = 1;
                     if (isset($value[$key])) {
                         $this->recursiveProcess($property, $value[$key]);
                         if ($key != $name) {
                             $value[$name] = $value[$key];
                             unset($value[$key]);
                         }
                     }
                 }
             }
             // Remove any unknown and potentially unsafe properties
             if ($param->getAdditionalProperties() === false) {
                 $value = array_intersect_key($value, $knownProperties);
             } elseif (($additional = $param->getAdditionalProperties()) !== true) {
                 // Validate and filter additional properties
                 foreach ($value as &$v) {
                     $this->recursiveProcess($additional, $v);
                 }
             }
         }
     }
     $value = $param->filter($value);
 }
开发者ID:jorjoh,项目名称:Varden,代码行数:47,代码来源:JsonVisitor.php

示例13: testCanBuildUpParams

 public function testCanBuildUpParams()
 {
     $p = new Parameter(array());
     $p->setName('foo')->setDescription('c')->setFilters(array('d'))->setLocation('e')->setSentAs('f')->setMaxLength(1)->setMinLength(1)->setMinimum(2)->setMaximum(2)->setMinItems(3)->setMaxItems(3)->setRequired(true)->setStatic(true)->setDefault('h')->setType('i');
     $p->addFilter('foo');
     $this->assertEquals('foo', $p->getName());
     $this->assertEquals('h', $p->getDefault());
     $this->assertEquals('c', $p->getDescription());
     $this->assertEquals(array('d', 'foo'), $p->getFilters());
     $this->assertEquals('e', $p->getLocation());
     $this->assertEquals('f', $p->getSentAs());
     $this->assertEquals(1, $p->getMaxLength());
     $this->assertEquals(1, $p->getMinLength());
     $this->assertEquals(2, $p->getMaximum());
     $this->assertEquals(2, $p->getMinimum());
     $this->assertEquals(3, $p->getMaxItems());
     $this->assertEquals(3, $p->getMinItems());
     $this->assertEquals(true, $p->getRequired());
     $this->assertEquals(true, $p->getStatic());
     $this->assertEquals('i', $p->getType());
 }
开发者ID:Frinstio,项目名称:AlfredWorkflow.com,代码行数:21,代码来源:ParameterTest.php

示例14: addXml

 /**
  * Recursively build the XML body
  *
  * @param \SimpleXMLElement $xml   XML to modify
  * @param Parameter         $param API Parameter
  * @param mixed             $value Value to add
  */
 protected function addXml(\SimpleXMLElement $xml, Parameter $param, $value)
 {
     // Determine the name of the element
     $node = $param->getWireName();
     // Check if this property has a particular namespace
     $namespace = $param->getData('xmlNamespace');
     // Filter the value
     $value = $param->filter($value);
     if ($param->getType() == 'array') {
         $this->addXmlArray($xml, $param, $value, $namespace);
     } elseif ($param->getType() == 'object') {
         $this->addXmlObject($xml, $param, $value);
     } elseif ($param->getData('xmlAttribute')) {
         $xml->addAttribute($node, $value, $namespace);
     } else {
         $xml->addChild($node, $value, $namespace);
     }
 }
开发者ID:xkeygmbh,项目名称:ifresco-php,代码行数:25,代码来源:XmlVisitor.php

示例15: recursiveProcess

 /**
  * Recursively validate a parameter
  *
  * @param Parameter $param  API parameter being validated
  * @param mixed     $value  Value to validate and validate. The value may change during this validate.
  * @param string    $path   Current validation path (used for error reporting)
  * @param int       $depth  Current depth in the validation validate
  *
  * @return bool Returns true if valid, or false if invalid
  */
 protected function recursiveProcess(Parameter $param, &$value, $path = '', $depth = 0)
 {
     // Update the value by adding default or static values
     $value = $param->getValue($value);
     $required = $param->getRequired();
     // if the value is null and the parameter is not required or is static, then skip any further recursion
     if (null === $value && !$required || $param->getStatic()) {
         return true;
     }
     $type = $param->getType();
     // Attempt to limit the number of times is_array is called by tracking if the value is an array
     $valueIsArray = is_array($value);
     // If a name is set then update the path so that validation messages are more helpful
     if ($name = $param->getName()) {
         $path .= "[{$name}]";
     }
     if ($type == 'object') {
         // Objects are either associative arrays, ToArrayInterface, or some other object
         if ($param->getInstanceOf()) {
             $instance = $param->getInstanceOf();
             if (!$value instanceof $instance) {
                 $this->errors[] = "{$path} must be an instance of {$instance}";
                 return false;
             }
         }
         // Determine whether or not this "value" has properties and should be traversed
         $traverse = $temporaryValue = false;
         // Convert the value to an array
         if (!$valueIsArray && $value instanceof ToArrayInterface) {
             $value = $value->toArray();
         }
         if ($valueIsArray) {
             // Ensure that the array is associative and not numerically indexed
             if (isset($value[0])) {
                 $this->errors[] = "{$path} must be an array of properties. Got a numerically indexed array.";
                 return false;
             }
             $traverse = true;
         } elseif ($value === null) {
             // Attempt to let the contents be built up by default values if possible
             $value = array();
             $temporaryValue = $valueIsArray = $traverse = true;
         }
         if ($traverse) {
             if ($properties = $param->getProperties()) {
                 // if properties were found, the validate each property of the value
                 foreach ($properties as $property) {
                     $name = $property->getName();
                     if (isset($value[$name])) {
                         $this->recursiveProcess($property, $value[$name], $path, $depth + 1);
                     } else {
                         $current = null;
                         $this->recursiveProcess($property, $current, $path, $depth + 1);
                         // Only set the value if it was populated with something
                         if (null !== $current) {
                             $value[$name] = $current;
                         }
                     }
                 }
             }
             $additional = $param->getAdditionalProperties();
             if ($additional !== true) {
                 // If additional properties were found, then validate each against the additionalProperties attr.
                 $keys = array_keys($value);
                 // Determine the keys that were specified that were not listed in the properties of the schema
                 $diff = array_diff($keys, array_keys($properties));
                 if (!empty($diff)) {
                     // Determine which keys are not in the properties
                     if ($additional instanceof Parameter) {
                         foreach ($diff as $key) {
                             $this->recursiveProcess($additional, $value[$key], "{$path}[{$key}]", $depth);
                         }
                     } else {
                         // if additionalProperties is set to false and there are additionalProperties in the values, then fail
                         foreach ($diff as $prop) {
                             $this->errors[] = sprintf('%s[%s] is not an allowed property', $path, $prop);
                         }
                     }
                 }
             }
             // A temporary value will be used to traverse elements that have no corresponding input value.
             // This allows nested required parameters with default values to bubble up into the input.
             // Here we check if we used a temp value and nothing bubbled up, then we need to remote the value.
             if ($temporaryValue && empty($value)) {
                 $value = null;
                 $valueIsArray = false;
             }
         }
     } elseif ($type == 'array' && $valueIsArray && $param->getItems()) {
         foreach ($value as $i => &$item) {
//.........这里部分代码省略.........
开发者ID:nstanard,项目名称:webpagetest,代码行数:101,代码来源:SchemaValidator.php


注:本文中的Guzzle\Service\Description\Parameter::getType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。