rss-bridge/docs/08_Format_API/02_FormatInterface.md
Dag 2bbce8ebef
refactor: general code base refactor (#2950)
* refactor

* fix: bug in previous refactor

* chore: exclude phpcompat sniff due to bug in phpcompat

* fix: do not leak absolute paths

* refactor/fix: batch extensions checking, fix DOS issue
2022-08-06 22:46:28 +02:00

3.2 KiB

The FormatInterfaceinterface defines functions that need to be implemented by all formats:

Find a template at the end of this file

Functions

The stringify function

The stringify function returns the items received by setItems as string.

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 function.

setItems(array $items): self

The getItems function

The getItems function returns the items previously set by the setItems function. If no items where set previously this function returns an error.

getItems(): array

The setCharset function

The setCharset function receives the character set value as string and returns the object instance.

setCharset(string): self

The getCharset function

The getCharset function returns the character set value.

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.

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 function.

getExtraInfos(): array

The getMimeType function

The getMimeType function returns the expected MIME type of the format's output.

parse_mime_type(): string

Template

This is a bare minimum template for a format:

<?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 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!