Add TalkExtension as a Twig extension

This commit is contained in:
Oliver Davies 2021-08-25 00:59:26 +01:00
parent d22c35c090
commit 5048781ae3
3 changed files with 17 additions and 3 deletions

View file

@ -6,3 +6,8 @@ sculpin_content_types:
taxonomies: [tags]
talks:
permalink: talks/:basename/
services:
App\TwigExtension\TalkExtension:
tags:
- { name: twig.extension }

View file

@ -5,10 +5,19 @@ declare(strict_types=1);
namespace App\TwigExtension;
use Illuminate\Support\Collection;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
final class TalkExtension
final class TalkExtension extends AbstractExtension
{
public function getPastTalksCount(array $talks = []): int
public function getFunctions()
{
return [
new TwigFunction('get_past_talk_count', [$this, 'getPastTalkCount']),
];
}
public function getPastTalkCount(array $talks = []): int
{
$talkCollection = new Collection($talks);

View file

@ -10,6 +10,6 @@ final class TalkExtensionTest extends TestCase
/** @test */
public function it_returns_zero_if_there_are_no_talks(): void
{
$this->assertSame(0, (new TalkExtension())->getPastTalksCount([]));
$this->assertSame(0, (new TalkExtension())->getPastTalkCount([]));
}
}