aboutsummaryrefslogtreecommitdiff
path: root/lib/FormatAbstract.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/FormatAbstract.php')
-rw-r--r--lib/FormatAbstract.php120
1 files changed, 29 insertions, 91 deletions
diff --git a/lib/FormatAbstract.php b/lib/FormatAbstract.php
index 3289d651..0304f627 100644
--- a/lib/FormatAbstract.php
+++ b/lib/FormatAbstract.php
@@ -1,132 +1,70 @@
<?php
-/**
- * This file is part of RSS-Bridge, a PHP project capable of generating RSS and
- * Atom feeds for websites that don't have one.
- *
- * For the full license information, please view the UNLICENSE file distributed
- * with this source code.
- *
- * @package Core
- * @license https://unlicense.org/ UNLICENSE
- * @link https://github.com/rss-bridge/rss-bridge
- */
-
-/**
- * An abstract class for format implementations
- *
- * This class implements {@see FormatInterface}
- */
-abstract class FormatAbstract implements FormatInterface
+abstract class FormatAbstract
{
- /** The default charset (UTF-8) */
- const DEFAULT_CHARSET = 'UTF-8';
-
- /** MIME type of format output */
const MIME_TYPE = 'text/plain';
- /** @var string $charset The charset */
- protected $charset;
+ protected string $charset = 'UTF-8';
+ protected array $items = [];
+ protected int $lastModified;
+ protected array $extraInfos = [];
- /** @var array $items The items */
- protected $items;
+ abstract public function stringify();
- /**
- * @var int $lastModified A timestamp to indicate the last modified time of
- * the output data.
- */
- protected $lastModified;
-
- /** @var array $extraInfos The extra infos */
- protected $extraInfos;
-
- /** {@inheritdoc} */
- public function getMimeType()
+ public function getMimeType(): string
{
return static::MIME_TYPE;
}
- /**
- * {@inheritdoc}
- *
- * @param string $charset {@inheritdoc}
- */
- public function setCharset($charset)
+ public function setCharset(string $charset)
{
$this->charset = $charset;
-
- return $this;
}
- /** {@inheritdoc} */
- public function getCharset()
+ public function getCharset(): string
{
- $charset = $this->charset;
-
- if (is_null($charset)) {
- return static::DEFAULT_CHARSET;
- }
- return $charset;
+ return $this->charset;
}
- /**
- * Set the last modified time
- *
- * @param int $lastModified The last modified time
- * @return void
- */
- public function setLastModified($lastModified)
+ public function setLastModified(int $lastModified)
{
$this->lastModified = $lastModified;
}
- /**
- * {@inheritdoc}
- *
- * @param array $items {@inheritdoc}
- */
public function setItems(array $items)
{
$this->items = $items;
-
- return $this;
}
- /** {@inheritdoc} */
- public function getItems()
+ /**
+ * @return FeedItem[] The items
+ */
+ public function getItems(): array
{
- if (!is_array($this->items)) {
- throw new \LogicException(sprintf('Feed the %s with "setItems" method before !', get_class($this)));
- }
-
return $this->items;
}
- /**
- * {@inheritdoc}
- *
- * @param array $extraInfos {@inheritdoc}
- */
- public function setExtraInfos(array $extraInfos = [])
+ public function setExtraInfos(array $infos = [])
{
- foreach (['name', 'uri', 'icon', 'donationUri'] as $infoName) {
- if (!isset($extraInfos[$infoName])) {
- $extraInfos[$infoName] = '';
+ $extras = [
+ 'name',
+ 'uri',
+ 'icon',
+ 'donationUri',
+ ];
+ foreach ($extras as $extra) {
+ if (!isset($infos[$extra])) {
+ $infos[$extra] = '';
}
}
-
- $this->extraInfos = $extraInfos;
-
- return $this;
+ $this->extraInfos = $infos;
}
- /** {@inheritdoc} */
- public function getExtraInfos()
+ public function getExtraInfos(): array
{
- if (is_null($this->extraInfos)) { // No extra info ?
- $this->setExtraInfos(); // Define with default value
+ if (!$this->extraInfos) {
+ $this->setExtraInfos();
}
-
return $this->extraInfos;
}
}