Создайте TwigExtension
, который считает и возвращает класс
<?php
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class AppExtension extends AbstractExtension
{
protected $classes = [];
public function getFunctions()
{
return [
new TwigFunction('create_class', [$this, 'createClass']),
new TwigFunction('count_class', [$this, 'countClass']),
];
}
public function createClass($class)
{
if (!isset($this->classes[$class])) $this->classes[$class] = 0;
$this->classes[$class]++;
return $class;
}
public function countClass($class) {
return $this->classes[$class] ?? 0;
}
}
<div class="{{ create_class('myclass1') }}">text</div>
<div class="{{ create_class('myclass2') }}">text</div>
<div class="{{ create_class('myclass1') }}">text</div>
<div class="{{ create_class('myclass1') }}">text</div>
<div class="{{ create_class('myclass2') }}">text</div>
<div class="{{ create_class('myclass2') }}">text</div>
<div class="{{ create_class('myclass2') }}">text</div>
<div class="{{ create_class('myclass1') }}">text</div>
myclass1 count: {{ class_count('myclass1') }}
myclass2 count: {{ class_count('myclass2') }}
Примечание: не тестировал это, но он должен дать вам основной жест