HomepageController
a phpmae:HTTPInvokableClass & phpmae:Class in CloudObjects Website
Public PHP Methods
-
__invoke()
No documentation available.
Source Code
<?php use Exception; use SimpleXmlElement; use GuzzleHttp\Client; /** * Implementation for coid://website.cloudobjects.io/HomepageController */ class HomepageController { const MAX_POSTS = 2; private $objectParser; public function __construct(ObjectParser $objectParser) { $this->objectParser = $objectParser; } public function __invoke() { // Collect featured objects $objects = []; $objectCoids = [ 'coid://webapis.co-n.net/WebAPI', 'coid://cloudobjects.io/ObjectAPI/1.0' ]; foreach ($objectCoids as $coid) $objects[] = [ 'url' => $this->objectParser->getDirectoryURL($coid), 'label' => $this->objectParser->getLabel($coid), 'comment' => $this->objectParser->getComment($coid) ]; // Collect blog posts $posts = []; try { $client = new Client([ 'base_uri' => 'https://blog.cloudobjects.io/' ]); $xml = new SimpleXmlElement($client->get('/feed.xml') ->getBody()->getContents()); foreach ($xml->entry as $e) { $posts[] = [ 'title' => (string)$e->title, 'url' => (string)$e->link[0]->attributes()['href'] ]; if (count($posts) == self::MAX_POSTS) break; } } catch (Exception $e) { // ignore errors and return empty list } // Build response return [ 'objects' => $objects, 'blogposts' => $posts ]; } }
Meta
- URI / COID
- coid://website.cloudobjects.io/HomepageController content_copy
- Revision
- 11-b20a65d001aecbec99a471a529d404cd content_copy
- Short ID
- cows:HomepageController content_copy
- Reference URL
- https://coid.link/website.cloudobjects.io/HomepageController content_copy
- Last updated
- 2021-04-19 15:44 (UTC)
- Created at
- 2021-04-19 15:44 (UTC)