本文整理汇总了PHP中Guzzle\Service\Description\Parameter::getData方法的典型用法代码示例。如果您正苦于以下问题:PHP Parameter::getData方法的具体用法?PHP Parameter::getData怎么用?PHP Parameter::getData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Guzzle\Service\Description\Parameter
的用法示例。
在下文中一共展示了Parameter::getData方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
}
示例2: validateLinkStructure
/**
* Validates the structure of a link (from the service description)
*
* @param \Guzzle\Service\Description\Parameter $structure
*
* @throws \Desk\Exception\UnexpectedValueException If it's invalid
*/
public function validateLinkStructure(Parameter $structure)
{
if (!$structure->getData('operation')) {
throw new UnexpectedValueException("Parameter with 'links' location requires 'operation'");
}
if (!$structure->getData('pattern')) {
throw new UnexpectedValueException("Parameter with 'links' location requires 'pattern'");
}
}
示例3: 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;
}
}
示例4: visit
/**
* {@inheritdoc}
*/
public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
{
$entityBody = EntityBody::factory($value);
$request->setBody($entityBody);
$this->addExpectHeader($request, $entityBody, $param->getData('expect_header'));
// Add the Content-Encoding header if one is set on the EntityBody
if ($encoding = $entityBody->getContentEncoding()) {
$request->setHeader('Content-Encoding', $encoding);
}
}
示例5: resolveArray
/**
* Custom handling for arrays
*
* @param Parameter $param Parameter for the object
* @param array $value Value that is set for this parameter
* @param string $prefix Prefix for the resulting key
* @param array $query Query string array passed by reference
*/
protected function resolveArray(Parameter $param, array $value, $prefix, array &$query)
{
$offset = $param->getData('offset') ?: 1;
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] = $param->filter($v);
}
}
}
示例6: visit
/**
* {@inheritdoc}
*/
public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
{
$filteredValue = $param->filter($value);
if (null !== $this->serializer && (is_object($filteredValue) || is_array($filteredValue))) {
switch ($param->getSentAs()) {
case 'json':
$request->setHeader('Content-Type', 'application/json');
$contentType = 'json';
break;
case 'yml':
case 'yaml':
$request->setHeader('Content-Type', 'application/yaml');
$contentType = 'yml';
break;
default:
$request->setHeader('Content-Type', 'application/xml');
$contentType = 'xml';
break;
}
$context = SerializationContext::create();
if (null !== ($groups = $param->getData('jms_serializer.groups'))) {
$context->setGroups($groups);
}
if (null !== ($version = $param->getData('jms_serializer.version'))) {
$context->setVersion($version);
}
if (null !== ($nulls = $param->getData('jms_serializer.serialize_nulls'))) {
$context->setSerializeNull($nulls);
}
if (true === $param->getData('jms_serializer.max_depth_checks')) {
$context->enableMaxDepthChecks();
}
$value = $this->serializer->serialize($filteredValue, $contentType, $context);
}
parent::visit($command, $request, $param, $value);
}
示例7: addLinkValue
/**
* Prepares and stores the value for a link
*
* Creates an link object (with "class" and "href") from the Guzzle
* Parameter describing the link, and the value provided by the
* user.
*
* @param \Guzzle\Service\Command\CommandInterface $command
* @param \Guzzle\Service\Description\Parameter $parameter
* @param mixed $value
*/
public function addLinkValue(CommandInterface $command, Parameter $parameter, $value)
{
$values = array();
if (isset($this->values[$command])) {
$values = $this->values[$command];
}
$values[$parameter->getName()] = array('class' => $parameter->getData('class'), 'href' => preg_replace('/{value}/', $parameter->getValue($value), $parameter->getData('href')));
$this->values[$command] = $values;
}
示例8: resolveArray
/**
* Custom handling for arrays
*
* @param Parameter $param Parameter for the object
* @param array $value Value that is set for this parameter
* @param string $prefix Prefix for the resulting key
* @param array $query Query string array passed by reference
*/
protected function resolveArray(Parameter $param, array $value, $prefix, array &$query)
{
static $serializeEmpty = array('SetLoadBalancerPoliciesForBackendServer' => 1, 'SetLoadBalancerPoliciesOfListener' => 1, 'UpdateStack' => 1);
// For BC, serialize empty lists for specific operations
if (!$value) {
if (isset($serializeEmpty[$this->fqname])) {
$query[$prefix] = '';
}
return;
}
$offset = $param->getData('offset') ?: 1;
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] = $param->filter($v);
}
}
}
示例9: testCanRetrieveKnownPropertiesUsingDataMethod
public function testCanRetrieveKnownPropertiesUsingDataMethod()
{
$p = new Parameter();
$this->assertEquals(null, $p->getData('foo'));
$p->setName('test');
$this->assertEquals('test', $p->getData('name'));
}
示例10: 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)
{
if ($value === null) {
return;
}
$value = $param->filter($value);
$type = $param->getType();
if ($type == 'object' || $type == 'array') {
$ele = $param->getData('xmlFlattened') ? $xml : $xml->addChild($param->getWireName());
if ($param->getType() == 'array') {
$this->addXmlArray($ele, $param, $value, $param->getData('xmlNamespace'));
} elseif ($param->getType() == 'object') {
$this->addXmlObject($ele, $param, $value);
}
} elseif ($param->getData('xmlAttribute')) {
$xml->addAttribute($param->getWireName(), $value, $param->getData('xmlNamespace'));
} else {
$xml->addChild($param->getWireName(), $value, $param->getData('xmlNamespace'));
}
}
示例11: 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);
}
}