mekras / atompub
Atom发布协议支持库
v1.0.0
2016-08-17 14:24 UTC
Requires
- php: >=5.6
- mekras/atom: ^1.0.0-beta
- mekras/class-helpers: ^1.2
Requires (Dev)
- phpunit/phpunit: ^5.0.9
- satooshi/php-coveralls: dev-master
This package is auto-updated.
Last update: 2024-08-29 04:37:31 UTC
README
目的
此库旨在以面向对象的方式与AtomPub文档一起使用。它不包含下载或显示文档的功能。
此库是Atom包的扩展。
解析文档
use Mekras\Atom\Document\EntryDocument; use Mekras\Atom\Document\FeedDocument; use Mekras\Atom\Exception\AtomException; use Mekras\AtomPub\Document\CategoryDocument; use Mekras\AtomPub\Document\ServiceDocument; use Mekras\AtomPub\DocumentFactory; $factory = new DocumentFactory; $xml = file_get_contents('http://example.com/atom'); try { $document = $factory->parseXML($xml); } catch (AtomException $e) { die($e->getMessage()); } if ($document instanceof CategoryDocument) { $categories = $document->getCategories(); //... } elseif ($document instanceof ServiceDocument) { $workspaces = $document->getWorkspaces(); //... } elseif ($document instanceof FeedDocument) { $feed = $document->getFeed(); //... } elseif ($document instanceof EntryDocument) { $entry = $document->getEntry(); //... }
创建条目
use Mekras\AtomPub\DocumentFactory; $factory = new DocumentFactory; $document = $factory->createDocument('atom:entry'); $entry = $document->getEntry(); $entry->addId('urn:entry:0001'); $entry->addTitle('Entry Title'); $entry->addAuthor('Author 1')->setEmail('foo@example.com'); $entry->addContent('<h1>Entry content</h1>', 'html'); $entry->addCategory('tag1')->setLabel('Tag label')->setScheme('http://example.com/scheme'); $entry->addUpdated(new \DateTime()); // Suppose that $httpClient is some kind of HTTP client... $httpClient->sendRequest('POST', 'http://example.com/', (string) $document);