tkr/src/Feed/FeedGenerator.php
Greg Sarjeant dc63d70944 Refactor feeds to be more testable and to remove templates. (#36)
Move feed generation into generator classes and out of templates. Remove feed templates, since they don't have any UI elements.

Reviewed-on: https://gitea.subcultureofone.org/greg/tkr/pulls/36
Co-authored-by: Greg Sarjeant <greg@subcultureofone.org>
Co-committed-by: Greg Sarjeant <greg@subcultureofone.org>
2025-07-31 00:05:46 +00:00

24 lines
772 B
PHP

<?php
// Abstract base class for feeds.
// Specific feeds (RSS, Atom, etc.) will inherit from this.
// This will wrap the basic generator functionality.
abstract class FeedGenerator {
protected $config;
protected $ticks;
public function __construct(ConfigModel $config, array $ticks) {
$this->config = $config;
$this->ticks = $ticks;
}
abstract public function generate(): string;
abstract public function getContentType(): string;
protected function buildTickUrl(int $tickId): string {
return Util::buildUrl($this->config->baseUrl, $this->config->basePath, "tick/{$tickId}");
}
protected function getSiteUrl(): string {
return Util::buildUrl($this->config->baseUrl, $this->config->basePath);
}
}