BCard - Documentation technique

PredefinedFeaturesService
in package

Référentiel en dur des fonctionnalités proposées dans les offres commerciales.

Ce service ne dépend d'aucune infrastructure : il expose la constante self::FEATURES et des méthodes de lecture qui traduisent les clés techniques stockées sur les plans en libellés, descriptions et icônes Bootstrap Icons. Il est consommé par les formulaires d'administration des plans et par les gabarits d'affichage de la grille tarifaire.

Table of Contents

Constants

FEATURES  : array<string, array{label: string, description: string, icon: string}> = ['unlimited_cards' => ['label' => 'Cartes illim...
Catalogue des fonctionnalités connues de l'application.

Methods

getAllFeatures()  : array<string, array{label: string, description: string, icon: string}>
Retourne toutes les fonctionnalités disponibles
getFeature()  : array{label: string, description: string, icon: string}|null
Retourne une fonctionnalité par sa clé
getFeatureLabelAndIcon()  : array{label: string, icon: string}
Retourne le label et l'icône d'une fonctionnalité
getSelectedFeaturesLabels()  : array<int, string>
Retourne les labels des fonctionnalités sélectionnées
getSelectedFeaturesWithIcons()  : array<int, array{label: string, icon: string}>
Retourne les labels et icônes des fonctionnalités sélectionnées
validateFeatureKeys()  : bool
Valide que les clés de fonctionnalités existent

Constants

FEATURES

Catalogue des fonctionnalités connues de l'application.

public array<string, array{label: string, description: string, icon: string}> FEATURES = ['unlimited_cards' => ['label' => 'Cartes illimitées', 'description' => 'Créez autant de cartes que vous voulez', 'icon' => 'bi-infinity'], 'custom_design' => ['label' => 'Design personnalisé', 'description' => 'Personnalisez entièrement vos cartes', 'icon' => 'bi-palette'], 'analytics' => ['label' => 'Statistiques avancées', 'description' => 'Suivez les performances de vos cartes', 'icon' => 'bi-graph-up'], 'qr_code' => ['label' => 'Code QR personnalisé', 'description' => 'Générez des codes QR pour vos cartes', 'icon' => 'bi-qr-code'], 'nfc_support' => ['label' => 'Support NFC', 'description' => 'Cartes compatibles avec la technologie NFC', 'icon' => 'bi-broadcast'], 'priority_support' => ['label' => 'Support prioritaire', 'description' => 'Assistance technique prioritaire 24/7', 'icon' => 'bi-headset'], 'team_management' => ['label' => 'Gestion d\'équipe', 'description' => 'Gérez les cartes de votre équipe', 'icon' => 'bi-people'], 'api_access' => ['label' => 'Accès API', 'description' => 'Intégrez nos services via API', 'icon' => 'bi-code-slash'], 'white_label' => ['label' => 'Marque blanche', 'description' => 'Supprimez notre branding', 'icon' => 'bi-tag'], 'export_data' => ['label' => 'Export des données', 'description' => 'Exportez vos données en différents formats', 'icon' => 'bi-download'], 'custom_domain' => ['label' => 'Domaine personnalisé', 'description' => 'Utilisez votre propre nom de domaine', 'icon' => 'bi-globe'], 'advanced_security' => ['label' => 'Sécurité avancée', 'description' => 'Protection renforcée de vos données', 'icon' => 'bi-shield-check'], 'physical_nfc_card' => ['label' => 'Carte de visite physique NFC', 'description' => 'Recevez une carte de visite physique équipée de la technologie NFC', 'icon' => 'bi-credit-card-2-front']]

Chaque entrée est indexée par sa clé technique — celle qui est réellement stockée dans le champ features d'un Plan — et porte trois attributs : label (libellé français affichable), description (argumentaire commercial) et icon (classe CSS Bootstrap Icons). Modifier une clé existante invalide les plans déjà enregistrés en base qui y font référence.

Methods

getAllFeatures()

Retourne toutes les fonctionnalités disponibles

public getAllFeatures() : array<string, array{label: string, description: string, icon: string}>

Simple exposition de la constante self::FEATURES sous forme de méthode, afin de la rendre accessible depuis les gabarits Twig.

Return values
array<string, array{label: string, description: string, icon: string}>

Catalogue complet, indexé par clé technique.

getFeature()

Retourne une fonctionnalité par sa clé

public getFeature(string $key) : array{label: string, description: string, icon: string}|null
Parameters
$key : string

Clé technique recherchée.

Return values
array{label: string, description: string, icon: string}|null

Définition complète de la fonctionnalité, ou null si la clé est inconnue du catalogue.

getFeatureLabelAndIcon()

Retourne le label et l'icône d'une fonctionnalité

public getFeatureLabelAndIcon(string $key) : array{label: string, icon: string}

Pour une clé inconnue, la méthode ne lève pas d'erreur mais applique un repli d'affichage : la clé brute est utilisée comme libellé et l'icône générique bi-check est retournée. La description n'est jamais incluse dans le résultat.

Parameters
$key : string

Clé technique de la fonctionnalité.

Return values
array{label: string, icon: string}

Libellé et classe d'icône, éventuellement issus du repli.

getSelectedFeaturesLabels()

Retourne les labels des fonctionnalités sélectionnées

public getSelectedFeaturesLabels(array<int, string> $selectedKeys) : array<int, string>

Les clés inconnues du catalogue sont silencieusement ignorées : le tableau retourné peut donc être plus court que celui fourni en entrée. Contrairement à self::getSelectedFeaturesWithIcons(), aucun repli n'est appliqué.

Parameters
$selectedKeys : array<int, string>

Clés techniques retenues sur un plan.

Return values
array<int, string>

Libellés correspondants, dans l'ordre des clés fournies.

getSelectedFeaturesWithIcons()

Retourne les labels et icônes des fonctionnalités sélectionnées

public getSelectedFeaturesWithIcons(array<int, string> $selectedKeys) : array<int, array{label: string, icon: string}>

Applique self::getFeatureLabelAndIcon() à chaque clé : le tableau retourné a donc toujours la même taille que celui fourni en entrée, les clés inconnues étant remplacées par leur repli d'affichage plutôt qu'écartées.

Parameters
$selectedKeys : array<int, string>

Clés techniques retenues sur un plan.

Return values
array<int, array{label: string, icon: string}>

Couples libellé/icône, dans l'ordre des clés fournies.

validateFeatureKeys()

Valide que les clés de fonctionnalités existent

public validateFeatureKeys(array<int, string> $keys) : bool

La validation est stricte et s'arrête à la première clé inconnue. Un tableau vide est considéré comme valide.

Parameters
$keys : array<int, string>

Clés techniques à contrôler.

Return values
bool

true si toutes les clés figurent dans self::FEATURES.


        
On this page

Search results