From 3dc5e104f1375da2ae1a141fb49d136176011fa4 Mon Sep 17 00:00:00 2001 From: Jay Potter Date: Sat, 25 Oct 2025 14:59:18 -0400 Subject: [PATCH] Implement StringableInterface --- composer.json | 3 ++- src/Potter/Renderable/RenderableInterface.php | 4 +++- src/Potter/Renderable/RenderableTrait.php | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 5f64d2f..68f3a17 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,8 @@ "name": "potter/renderable", "type": "library", "require": { - "php": "^8.4" + "php": "^8.4", + "potter/stringable": "dev-main" }, "license": "MIT", "autoload": { diff --git a/src/Potter/Renderable/RenderableInterface.php b/src/Potter/Renderable/RenderableInterface.php index cb324cd..ea42b63 100644 --- a/src/Potter/Renderable/RenderableInterface.php +++ b/src/Potter/Renderable/RenderableInterface.php @@ -4,7 +4,9 @@ declare(strict_types=1); namespace Potter\Renderable; -interface RenderableInterface +use \Potter\Stringable\StringableInterface; + +interface RenderableInterface extends StringableInterface { public function render(): string; } diff --git a/src/Potter/Renderable/RenderableTrait.php b/src/Potter/Renderable/RenderableTrait.php index 41e4854..7fbffaa 100644 --- a/src/Potter/Renderable/RenderableTrait.php +++ b/src/Potter/Renderable/RenderableTrait.php @@ -6,5 +6,10 @@ namespace Potter\Renderable; trait RenderableTrait { + final public function __toString(): string + { + return $this->render(); + } + abstract public function render(): string; }