Beispiel #1
0
 /**
  * @see yii\web\XmlResponseFormatter::buildXml()
  */
 protected function buildXml($element, $data)
 {
     if (is_object($data)) {
         $child = new DOMElement(StringHelper::basename(get_class($data)));
         $element->appendChild($child);
         if ($data instanceof Arrayable) {
             $this->buildXml($child, $data->toArray());
         } else {
             $array = [];
             foreach ($data as $name => $value) {
                 $array[$name] = $value;
             }
             $this->buildXml($child, $array);
         }
     } elseif (is_array($data)) {
         foreach ($data as $name => $value) {
             if (is_int($name) && is_object($value)) {
                 $this->buildXml($element, $value);
             } elseif (is_array($value) || is_object($value)) {
                 $child = new DOMElement(is_int($name) ? $this->itemTag : $name);
                 $element->appendChild($child);
                 $this->buildXml($child, $value);
             } else {
                 $child = new DOMElement(is_int($name) ? $this->itemTag : $name);
                 $element->appendChild($child);
                 $child->appendChild(new DOMText((string) $value));
             }
         }
     } else {
         $element->appendChild(new DOMText((string) $data));
     }
 }
 /**
  * 支持分表散列获取表名
  * @return string
  */
 public static function tableName()
 {
     return '{{%' . Inflector::camel2id(StringHelper::basename(get_called_class()), '_') . '}}' . static::shardTableRule();
 }
Beispiel #3
0
 public static function basename($class)
 {
     $class = static::getClass($class);
     return StringHelper::basename($class);
 }