. */ namespace App\Services\LabelSystem\PlaceholderProviders; use App\Entity\Base\AbstractDBElement; use App\Services\ElementTypeNameGenerator; class AbstractDBElementProvider implements PlaceholderProviderInterface { protected $elementTypeNameGenerator; public function __construct(ElementTypeNameGenerator $elementTypeNameGenerator) { $this->elementTypeNameGenerator = $elementTypeNameGenerator; } /** * @inheritDoc */ public function replace(string $placeholder, object $label_target, array $options = []): ?string { if ($label_target instanceof AbstractDBElement) { if ($placeholder === '[[TYPE]]') { return $this->elementTypeNameGenerator->getLocalizedTypeLabel($label_target); } if ($placeholder === '[[ID]]') { return (string) ($label_target->getID() ?? 'unknown'); } } return null; } }