Skip to content

Commit

Permalink
[TASK] Rename ExtensionElementInterface to ExtensionContentsInterface
Browse files Browse the repository at this point in the history
This avoids confusion with DOM elements as they do not return any DOM elements.
  • Loading branch information
brotkrueml committed Nov 25, 2022
1 parent 1ffb7bb commit 4f03dba
Show file tree
Hide file tree
Showing 28 changed files with 75 additions and 75 deletions.
6 changes: 3 additions & 3 deletions Classes/Configuration/ExtensionRegistry.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace Brotkrueml\FeedGenerator\Configuration;

use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Contract\JsonExtensionInterface;
use Brotkrueml\FeedGenerator\Contract\XmlExtensionInterface;
use Brotkrueml\FeedGenerator\Format\FeedFormat;
Expand All @@ -32,11 +32,11 @@ public function __construct(
/**
* @return ($format is FeedFormat::JSON ? JsonExtensionInterface : XmlExtensionInterface)|null
*/
public function getExtensionForElement(FeedFormat $format, ExtensionElementInterface $element): JsonExtensionInterface|XmlExtensionInterface|null
public function getExtensionForContent(FeedFormat $format, ExtensionContentInterface $content): JsonExtensionInterface|XmlExtensionInterface|null
{
$extensions = $format === FeedFormat::JSON ? $this->getExtensionsForJsonFormat() : $this->getExtensionsForXmlFormat();
foreach ($extensions as $extension) {
if ($extension->canHandle($element)) {
if ($extension->canHandle($content)) {
return $extension;
}
}
Expand Down
4 changes: 2 additions & 2 deletions Classes/Configuration/ExtensionRegistryInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace Brotkrueml\FeedGenerator\Configuration;

use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Contract\JsonExtensionInterface;
use Brotkrueml\FeedGenerator\Contract\XmlExtensionInterface;
use Brotkrueml\FeedGenerator\Format\FeedFormat;
Expand All @@ -24,7 +24,7 @@ interface ExtensionRegistryInterface
/**
* @return ($format is FeedFormat::JSON ? JsonExtensionInterface : XmlExtensionInterface)|null
*/
public function getExtensionForElement(FeedFormat $format, ExtensionElementInterface $element): JsonExtensionInterface|XmlExtensionInterface|null;
public function getExtensionForContent(FeedFormat $format, ExtensionContentInterface $content): JsonExtensionInterface|XmlExtensionInterface|null;

/**
* @return iterable<JsonExtensionInterface|XmlExtensionInterface>
Expand Down
2 changes: 1 addition & 1 deletion Classes/Contract/CollectableInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#[Sealed(permits: [
AttachmentInterface::class,
AuthorInterface::class,
ExtensionElementInterface::class,
ExtensionContentInterface::class,
CategoryInterface::class,
ItemInterface::class,
])]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
namespace Brotkrueml\FeedGenerator\Contract;

/**
* A marker interface for extension elements
* A marker interface for extension content
* @api
*/
interface ExtensionElementInterface extends CollectableInterface
interface ExtensionContentInterface extends CollectableInterface
{
}
2 changes: 1 addition & 1 deletion Classes/Contract/ExtensionInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
])]
interface ExtensionInterface
{
public function canHandle(ExtensionElementInterface $element): bool;
public function canHandle(ExtensionContentInterface $content): bool;

public function getQualifiedName(): string;
}
6 changes: 3 additions & 3 deletions Classes/Contract/FeedInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ public function getItems(): Collection;
public function getStyleSheet(): string;

/**
* Get extension elements
* @return Collection<ExtensionElementInterface>
* Get extension contents for the feed
* @return Collection<ExtensionContentInterface>
*/
public function getExtensionElements(): Collection;
public function getExtensionContents(): Collection;
}
6 changes: 3 additions & 3 deletions Classes/Contract/ItemInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ public function getDateModified(): ?\DateTimeInterface;
public function getAttachments(): Collection;

/**
* Get extension elements
* @return Collection<ExtensionElementInterface>
* Get extension contents for the item
* @return Collection<ExtensionContentInterface>
*/
public function getExtensionElements(): Collection;
public function getExtensionContents(): Collection;
}
2 changes: 1 addition & 1 deletion Classes/Contract/JsonExtensionRendererInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ interface JsonExtensionRendererInterface extends ExtensionRendererInterface
/**
* @return array<string, mixed>
*/
public function render(ExtensionElementInterface $element): array;
public function render(ExtensionContentInterface $content): array;
}
2 changes: 1 addition & 1 deletion Classes/Contract/XmlExtensionRendererInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@
*/
interface XmlExtensionRendererInterface extends ExtensionRendererInterface
{
public function render(ExtensionElementInterface $element, \DOMNode $parent, \DOMDocument $document): void;
public function render(ExtensionContentInterface $content, \DOMNode $parent, \DOMDocument $document): void;
}
6 changes: 3 additions & 3 deletions Classes/Entity/AbstractFeed.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Brotkrueml\FeedGenerator\Collection\Collection;
use Brotkrueml\FeedGenerator\Contract\AuthorInterface;
use Brotkrueml\FeedGenerator\Contract\CategoryInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Contract\FeedInterface;
use Brotkrueml\FeedGenerator\Contract\ImageInterface;
use Brotkrueml\FeedGenerator\Contract\ItemInterface;
Expand Down Expand Up @@ -106,9 +106,9 @@ public function getStyleSheet(): string
}

/**
* @return Collection<ExtensionElementInterface>
* @return Collection<ExtensionContentInterface>
*/
public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return new Collection();
}
Expand Down
18 changes: 9 additions & 9 deletions Classes/Entity/Item.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Brotkrueml\FeedGenerator\Collection\Collection;
use Brotkrueml\FeedGenerator\Contract\AttachmentInterface;
use Brotkrueml\FeedGenerator\Contract\AuthorInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Contract\ItemInterface;
use Brotkrueml\FeedGenerator\Contract\TextInterface;

Expand All @@ -39,15 +39,15 @@ final class Item implements ItemInterface
*/
private readonly Collection $attachments;
/**
* @var Collection<ExtensionElementInterface>
* @var Collection<ExtensionContentInterface>
*/
private readonly Collection $extensionElements;
private readonly Collection $extensionContents;

public function __construct()
{
$this->attachments = new Collection();
$this->authors = new Collection();
$this->extensionElements = new Collection();
$this->extensionContents = new Collection();
}

public function getId(): string
Expand Down Expand Up @@ -164,18 +164,18 @@ public function addAttachments(AttachmentInterface ...$attachments): self
return $this;
}

public function addExtensionElements(ExtensionElementInterface ...$elements): self
public function addExtensionContents(ExtensionContentInterface ...$contents): self
{
$this->extensionElements->add(...$elements);
$this->extensionContents->add(...$contents);

return $this;
}

/**
* @return Collection<ExtensionElementInterface>
* @return Collection<ExtensionContentInterface>
*/
public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return $this->extensionElements;
return $this->extensionContents;
}
}
6 changes: 3 additions & 3 deletions Classes/Renderer/AtomRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@ public function render(FeedInterface $feed, string $feedLink): string
$categoryNode->add($category);
}

foreach ($feed->getExtensionElements() as $element) {
$extension = $this->extensionRegistry->getExtensionForElement(FeedFormat::ATOM, $element);
foreach ($feed->getExtensionContents() as $content) {
$extension = $this->extensionRegistry->getExtensionForContent(FeedFormat::ATOM, $content);
if (! $extension instanceof XmlExtensionInterface) {
continue;
}
$extension->getXmlRenderer()->render($element, $rootElement, $this->document);
$extension->getXmlRenderer()->render($content, $rootElement, $this->document);
$this->usedExtensions[$extension->getQualifiedName()] = $extension->getNamespace();
}

Expand Down
12 changes: 6 additions & 6 deletions Classes/Renderer/JsonRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
use Brotkrueml\FeedGenerator\Configuration\ExtensionRegistryInterface;
use Brotkrueml\FeedGenerator\Contract\AttachmentInterface;
use Brotkrueml\FeedGenerator\Contract\AuthorInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Contract\FeedInterface;
use Brotkrueml\FeedGenerator\Contract\ImageInterface;
use Brotkrueml\FeedGenerator\Contract\JsonExtensionInterface;
Expand Down Expand Up @@ -63,8 +63,8 @@ public function render(FeedInterface $feed, string $feedLink): string
if ($feed->getLanguage() !== '') {
$resultArray['language'] = $feed->getLanguage();
}
foreach ($feed->getExtensionElements() as $element) {
$resultArray = [...$resultArray, ...$this->renderExtensionContent($element)];
foreach ($feed->getExtensionContents() as $content) {
$resultArray = [...$resultArray, ...$this->renderExtensionContent($content)];
}

$resultArray['items'] = [];
Expand Down Expand Up @@ -99,7 +99,7 @@ public function render(FeedInterface $feed, string $feedLink): string
if (! $item->getAttachments()->isEmpty()) {
$itemArray['attachments'] = $this->buildAttachmentsArray($item->getAttachments());
}
foreach ($item->getExtensionElements() as $element) {
foreach ($item->getExtensionContents() as $element) {
$itemArray = [...$itemArray, ...$this->renderExtensionContent($element)];
}
$resultArray['items'][] = $itemArray;
Expand Down Expand Up @@ -164,9 +164,9 @@ private function buildAttachmentsArray(Collection $attachments): array
/**
* @return array<string, array<string, mixed>>
*/
private function renderExtensionContent(ExtensionElementInterface $element): array
private function renderExtensionContent(ExtensionContentInterface $element): array
{
$extension = $this->extensionRegistry->getExtensionForElement(FeedFormat::JSON, $element);
$extension = $this->extensionRegistry->getExtensionForContent(FeedFormat::JSON, $element);
if (! $extension instanceof JsonExtensionInterface) {
return [];
}
Expand Down
6 changes: 3 additions & 3 deletions Classes/Renderer/RssRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,12 @@ public function render(FeedInterface $feed, string $feedLink): string
$textNode->add('generator', \sprintf('%s (%s)', Generator::NAME, Generator::URI));
$imageNode->add($feed->getImage());

foreach ($feed->getExtensionElements() as $element) {
$extension = $this->extensionRegistry->getExtensionForElement(FeedFormat::RSS, $element);
foreach ($feed->getExtensionContents() as $content) {
$extension = $this->extensionRegistry->getExtensionForContent(FeedFormat::RSS, $content);
if (! $extension instanceof XmlExtensionInterface) {
continue;
}
$extension->getXmlRenderer()->render($element, $channelElement, $this->document);
$extension->getXmlRenderer()->render($content, $channelElement, $this->document);
$this->usedExtensions[$extension->getQualifiedName()] = $extension->getNamespace();
}

Expand Down
2 changes: 1 addition & 1 deletion Tests/Fixtures/Entity/ItemFixture.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public function getAttachments(): Collection
return new Collection();
}

public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return new Collection();
}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Fixtures/FeedConfiguration/SomeFeed.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public function getStyleSheet(): string
return '';
}

public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return new Collection();
}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Fixtures/Renderer/Atom/FullFeed.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public function getStyleSheet(): string
return '';
}

public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return new Collection();
}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Fixtures/Renderer/Rss/FullFeed.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public function getStyleSheet(): string
return '';
}

public function getExtensionElements(): Collection
public function getExtensionContents(): Collection
{
return new Collection();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

namespace Brotkrueml\FeedGenerator\Tests\Fixtures\ValueObject;

use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;

final class ExtensionElementFixture implements ExtensionElementInterface
final class ExtensionContentFixture implements ExtensionContentInterface
{
}
8 changes: 4 additions & 4 deletions Tests/Unit/Collection/CollectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

use Brotkrueml\FeedGenerator\Collection\Collection;
use Brotkrueml\FeedGenerator\Collection\IndexNotFoundException;
use Brotkrueml\FeedGenerator\Contract\ExtensionElementInterface;
use Brotkrueml\FeedGenerator\Contract\ExtensionContentInterface;
use Brotkrueml\FeedGenerator\Tests\Fixtures\Entity\ItemFixture;
use Brotkrueml\FeedGenerator\Tests\Fixtures\ValueObject\AttachmentFixture;
use Brotkrueml\FeedGenerator\Tests\Fixtures\ValueObject\AuthorFixture;
Expand Down Expand Up @@ -70,14 +70,14 @@ public function addAcceptsAnImplementationOfAuthorInterface(): void
/**
* @test
*/
public function addAcceptsAnImplementationOfExtensionElementInterface(): void
public function addAcceptsAnImplementationOfExtensionContentInterface(): void
{
self::expectNotToPerformAssertions();

$extensionElement = new class() implements ExtensionElementInterface {
$extensionContent = new class() implements ExtensionContentInterface {
};

$this->subject->add($extensionElement);
$this->subject->add($extensionContent);
}

/**
Expand Down
Loading

0 comments on commit 4f03dba

Please sign in to comment.