コード例 #1
0
 /**
  * Recursively build the XML body
  *
  * @param \XMLWriter $writer XML to modify
  * @param Parameter  $param     API Parameter
  * @param mixed      $value     Value to add
  */
 protected function addXml(\XMLWriter $writer, Parameter $param, $value)
 {
     $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')) {
             if ($namespace) {
                 $writer->startElementNS(null, $name, $namespace);
             } else {
                 $writer->startElement($name);
             }
         }
         if ($param->getType() == 'array') {
             $this->addXmlArray($writer, $param, $value);
         } elseif ($param->getType() == 'object') {
             $this->addXmlObject($writer, $param, $value);
         }
         if (!$param->getData('xmlFlattened')) {
             $writer->endElement();
         }
         return;
     }
     if ($param->getData('xmlAttribute')) {
         $this->writeAttribute($writer, $prefix, $name, $namespace, $value);
     } else {
         $this->writeElement($writer, $prefix, $name, $namespace, $value);
     }
 }
コード例 #2
0
ファイル: ParameterTest.php プロジェクト: daskleinesys/slimpd
 public function testCanRetrieveKnownPropertiesUsingDataMethod()
 {
     $p = new Parameter(['data' => ['name' => 'test'], 'extra' => 'hi!']);
     $this->assertEquals('test', $p->getData('name'));
     $this->assertEquals(['name' => 'test'], $p->getData());
     $this->assertNull($p->getData('fjnweefe'));
     $this->assertEquals('hi!', $p->getData('extra'));
 }