mekras / atompub
Atom Publishing Protocol support library
Installs: 9 497
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
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-10-29 05:04:46 UTC
README
Purpose
This library is designed to work with the AtomPub documents in an object-oriented style. It does not contain the functionality to download or display documents.
This library is an extension of the package Atom.
Parsing documents
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(); //... }
Creating entries
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);