public function xml() { $bool = false; $result = new \org\rhaco\Xml('entry'); foreach ($this->props() as $name => $value) { if (!empty($value)) { $bool = true; switch ($name) { case 'xmlns': $result->attr('xmlns', $value); break; case 'id': case 'title': $result->add(new \org\rhaco\Xml($name, $value)); break; case 'published': case 'updated': case 'issued': $result->add(new \org\rhaco\Xml($name, \org\rhaco\lang\Date::format_atom($value))); break; default: if (is_array($value)) { foreach ($value as $v) { try { $result->add($v instanceof \org\rhaco\net\xml\atom\Object ? $v->xml() : (string) $v); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } } else { if (is_object($value)) { try { $result->add($value instanceof \org\rhaco\net\xml\atom\Object ? $value->xml() : $value); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } else { $result->add(new \org\rhaco\Xml($name, $value)); break; } } } } } if (!$bool) { throw new \org\rhaco\net\xml\atom\NotfoundException(); } return $result; }
<?php eq("2007/07/19", \org\rhaco\lang\Date::format("2007-07-18T16:16:31+00:00", "Y/m/d")); eq("2007-07-18T16:16:31Z", \org\rhaco\lang\Date::format_atom(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_cookie(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2008/04/07", \org\rhaco\lang\Date::format_date(20080407)); eq("208/04/07", \org\rhaco\lang\Date::format_date(2080407)); eq("2007/07/19 01:16:31 (Thu)", \org\rhaco\lang\Date::format_full(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2007-07-19T01:16:31+0900", \org\rhaco\lang\Date::format_ISO8601(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("01:01:01", \org\rhaco\lang\Date::format_time(3661)); eq("00:01:01", \org\rhaco\lang\Date::format_time(61)); eq("300:01:01", \org\rhaco\lang\Date::format_time(1080061)); eq("00:00:00", \org\rhaco\lang\Date::format_time(0)); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_RFC822(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thursday, 19-Jul-07 01:16:31 JST", \org\rhaco\lang\Date::format_RFC850(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thursday, 19-Jul-07 01:16:31 JST", \org\rhaco\lang\Date::format_RFC1036(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_RFC1123(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 +0900", \org\rhaco\lang\Date::format_RFC2822(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("Thu, 19 Jul 2007 01:16:31 JST", \org\rhaco\lang\Date::format_rss(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("2007-07-19T01:16:31+09:00", \org\rhaco\lang\Date::format_w3c(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00"))); eq("D:20070719011631+09'00'", \org\rhaco\lang\Date::format_pdf(\org\rhaco\lang\Date::parse_date("2007-07-18T16:16:31+00:00")));
protected function __str__() { $result = new \org\rhaco\Xml('feed'); $result->attr('xmlns', self::XMLNS); foreach ($this->ar_xmlns() as $ns => $url) { $result->attr('xmlns:' . $ns, $url); } foreach ($this->props() as $name => $value) { if (!empty($value)) { switch ($name) { case 'title': case 'subtitle': case 'id': case 'generator': $result->add(new \org\rhaco\Xml($name, $value)); break; case 'updated': $result->add(new \org\rhaco\Xml($name, \org\rhaco\lang\Date::format_atom($value))); break; default: if (is_array($value)) { foreach ($value as $v) { try { $result->add($v instanceof \org\rhaco\net\xml\atom\Object ? $v->xml() : $v); } catch (\org\rhaco\net\xml\atom\NotfoundException $e) { } } } } } } return $result->get(); }