diff options
author | 2022-03-22 21:33:29 +0100 | |
---|---|---|
committer | 2022-03-22 21:33:29 +0100 | |
commit | 76f5de3d0fb3962e20a91d175ec13d9fa06957da (patch) | |
tree | e332f7f8c0d368755c10350fab0ac5f8b63bb2be /docs/08_Format_API/02_FormatInterface.md | |
parent | 16470e811996b8e0ab7a257d7450880672bb9331 (diff) | |
download | rss-bridge-76f5de3d0fb3962e20a91d175ec13d9fa06957da.tar.gz rss-bridge-76f5de3d0fb3962e20a91d175ec13d9fa06957da.tar.zst rss-bridge-76f5de3d0fb3962e20a91d175ec13d9fa06957da.zip |
[Documentation] Move all wiki pages into the repo and make it pretty (#2494)
Diffstat (limited to 'docs/08_Format_API/02_FormatInterface.md')
-rw-r--r-- | docs/08_Format_API/02_FormatInterface.md | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/docs/08_Format_API/02_FormatInterface.md b/docs/08_Format_API/02_FormatInterface.md new file mode 100644 index 00000000..28ac60b3 --- /dev/null +++ b/docs/08_Format_API/02_FormatInterface.md @@ -0,0 +1,146 @@ +The `FormatInterface`interface defines functions that need to be implemented by all formats: + +* [display](#the-display-function) +* [stringify](#the-stringify-function) +* [setItems](#the-setitems-function) +* [getItems](#the-getitems-function) +* [setCharset](#the-setcharset-function) +* [getCharset](#the-getcharset-function) +* [setExtraInfos](#the-setextrainfos-function) +* [getExtraInfos](#the-getextrainfos-function) +* [getMimeType](#the-getmimetype-function) + +Find a [template](#template) at the end of this file + +# Functions + +## The `display` function + +The `display` function shows the contents to the user and must return the object instance. + +```PHP +display(): self +``` + +## The `stringify` function + +The `stringify` function returns the items received by [`setItems`](#the-setitem-function) as string. + +```PHP +stringify(): string +``` + +## The `setItems` function + +The `setItems` function receives an array of items generated by the bridge and must return the object instance. Each item represents an entry in the feed. For more information refer to the [collectData](../05_Bridge_API/02_BridgeAbstract.md#collectdata) function. + +```PHP +setItems(array $items): self +``` + +## The `getItems` function + +The `getItems` function returns the items previously set by the [`setItems`](#the-setitems-function) function. If no items where set previously this function returns an error. + +```PHP +getItems(): array +``` + +## The `setCharset` function + +The `setCharset` function receives the character set value as string and returns the object instance. + +```PHP +setCharset(string): self +``` + +## The `getCharset` function + +The `getCharset` function returns the character set value. + +```PHP +getCharset(): string +``` + +## The `setExtraInfos` function + +The `setExtraInfos` function receives an array of elements with additional information to generate format outputs and must return the object instance. + +```PHP +setExtraInfos(array $infos): self +``` + +Currently supported information are: + +Name | Description +-----|------------ +`name` | Defines the name as generated by the bridge +`uri` | Defines the URI of the feed as generated by the bridge + +## The `getExtraInfos` function + +The `getExtraInfos` function returns the information previously set via the [`setExtraInfos`](#the-setextrainfos-function) function. + +```PHP +getExtraInfos(): array +``` + +## The `getMimeType` function + +The `getMimeType` function returns the expected [MIME type](https://en.wikipedia.org/wiki/Media_type#Common_examples) of the format's output. + +```PHP +getMimeType(): string +``` + +# Template + +This is a bare minimum template for a format: + +```PHP +<?php +class MyTypeFormat implements FormatInterface { + private $items; + private $charset; + private $extraInfos; + + public function stringify(){ + // Implement your code here + return ''; // Return items as string + } + + public function display(){ + // Implement your code here + echo $this->stringify(); + return $this; + } + + public function setItems(array $items){ + $this->items = $items; + return $this; + } + + public function getItems(){ + return $this->items; + } + + public function setCharset($charset){ + $this->charset = $charset; + return $this; + } + + public function getCharset(){ + return $this->charset; + } + + public function setExtraInfos(array $infos){ + $this->extraInfos = $infos; + return $this; + } + + public function getExtraInfos(){ + return $this->extraInfos; + } +} +// Imaginary empty line! +```
\ No newline at end of file |