BCard - Documentation technique

HomeController extends AbstractController
in package

Contrôleur des pages publiques du site vitrine B-Card.

Il regroupe les pages accessibles sans authentification : accueil, catalogue des modèles de cartes NFC, fiche produit, pages de présentation des fonctionnalités, tarifs et offre entreprise, formulaire de contact ainsi que les pages légales. Les contenus dynamiques proviennent des entités Card, Plan et Settings (destinataires du formulaire de contact, textes légaux). Aucun préfixe de route ni contrôle d'accès n'est déclaré au niveau de la classe.

Table of Contents

Methods

contact()  : Response
Affiche le formulaire de contact et traite son envoi.
enterpriseOffer()  : Response
Affiche la page de présentation de l'offre destinée aux entreprises.
features()  : Response
Affiche la page de présentation des possibilités de personnalisation des cartes.
featuresAnalytics()  : Response
Affiche la page de présentation des statistiques et du suivi d'audience.
featuresEco()  : Response
Affiche la page de présentation de l'argument écologique du produit.
featuresNFC()  : Response
Affiche la page de présentation de la fonctionnalité NFC.
howItWork()  : Response
Affiche la page explicative « Comment ça marche ».
index()  : Response
Affiche la page d'accueil du site.
politiqueAndConfidentialite()  : Response
Affiche la page de politique de confidentialité.
showProductNfc()  : Response
Affiche le catalogue des modèles de cartes NFC proposés à la vente.
tarifs()  : Response
Affiche la grille tarifaire publique.
termsAndConditionPage()  : Response
Affiche la page des conditions générales d'utilisation et de vente.
ViewRetailForProduct()  : Response
Affiche la fiche détaillée d'un modèle de carte NFC.

Methods

contact()

Affiche le formulaire de contact et traite son envoi.

public contact(Request $request, MailerService $mailerService, EntityManagerInterface $entityManager) : Response

En GET, rend simplement la page. En POST, lit les champs bruts de la requête (firstname, lastname, phone, email, message, object) sans passer par un formulaire Symfony ni validation explicite, puis détermine les destinataires : la liste configurée dans l'entité Settings (premier enregistrement trouvé) et, à défaut, l'adresse d'expédition par défaut du MailerService. Le message est envoyé à tous les destinataires avec l'email du visiteur en adresse de réponse, puis un message flash de succès est ajouté. Aucun échec d'envoi n'est intercepté ici : une erreur de transport remonte à l'appelant.

Route : /contact-page (GET, POST), nom app_contact.

Parameters
$request : Request

Requête HTTP contenant les champs du formulaire en POST.

$mailerService : MailerService

Service d'envoi d'emails (envoi multiple, adresse par défaut).

$entityManager : EntityManagerInterface

Gestionnaire d'entités utilisé pour lire les Settings.

Tags
throws
TransportExceptionInterface

Si l'envoi de l'email au(x) destinataire(s) échoue.

Attributes
#[Route]
'/contact-page'
$name: 'app_contact'
Return values
Response

Page de contact rendue (home/contact.html.twig), dans tous les cas.

enterpriseOffer()

Affiche la page de présentation de l'offre destinée aux entreprises.

public enterpriseOffer(PlanRepository $planRepository) : Response

Charge uniquement les plans d'abonnement actifs (isActive à true), triés par sortOrder croissant, afin de respecter l'ordre d'affichage défini en back-office.

Route : /offre-entreprise (GET), nom app_enterprise_offer.

Parameters
$planRepository : PlanRepository

Repository utilisé pour charger les plans actifs.

Attributes
#[Route]
'/offre-entreprise'
$name: 'app_enterprise_offer'
Return values
Response

Page rendue (home/enterprise-offer.html.twig) avec la liste des plans.

features()

Affiche la page de présentation des possibilités de personnalisation des cartes.

public features() : Response

Page statique, sans variable transmise au template. À noter : le nom de la méthode (features) est plus générique que son contenu, qui ne concerne que la personnalisation.

Route : /fonctionnalités/customization (GET), nom app_features_customisations.

Attributes
#[Route]
'/fonctionnalités/customization'
$name: 'app_features_customisations'
Return values
Response

Page rendue (features/customization.html.twig).

featuresAnalytics()

Affiche la page de présentation des statistiques et du suivi d'audience.

public featuresAnalytics() : Response

Page statique, sans variable transmise au template.

Route : /fonctionnalités/analytics (GET), nom app_features_analytics.

Attributes
#[Route]
'/fonctionnalités/analytics'
$name: 'app_features_analytics'
Return values
Response

Page rendue (features/analytics.html.twig).

featuresEco()

Affiche la page de présentation de l'argument écologique du produit.

public featuresEco() : Response

Page statique, sans variable transmise au template.

Route : /fonctionnalités/eco (GET), nom app_features_eco.

Attributes
#[Route]
'/fonctionnalités/eco'
$name: 'app_features_eco'
Return values
Response

Page rendue (features/eco.html.twig).

featuresNFC()

Affiche la page de présentation de la fonctionnalité NFC.

public featuresNFC() : Response

Page statique, sans variable transmise au template.

Route : /fonctionnalités/nfc (GET), nom app_features_nfc.

Attributes
#[Route]
'/fonctionnalités/nfc'
$name: 'app_features_nfc'
Return values
Response

Page rendue (features/nfc.html.twig).

howItWork()

Affiche la page explicative « Comment ça marche ».

public howItWork() : Response

Page purement statique : aucun paramètre n'est transmis au template.

Route : /comment-ca-marche (GET), nom app_how_it_work.

Attributes
#[Route]
'/comment-ca-marche'
$name: 'app_how_it_work'
Return values
Response

Page rendue (home/how-it-work.html.twig).

index()

Affiche la page d'accueil du site.

public index() : Response

Ne fait aucun accès aux données : rend simplement le template d'accueil en lui passant la variable controller_name.

Route : / (GET), nom app_home.

Attributes
#[Route]
'/'
$name: 'app_home'
Return values
Response

Page d'accueil rendue (home/index.html.twig).

politiqueAndConfidentialite()

Affiche la page de politique de confidentialité.

public politiqueAndConfidentialite(EntityManagerInterface $entityManager) : Response

Le contenu est éditorialisé en back-office : la méthode récupère le premier enregistrement de l'entité Settings et le transmet au template. Si aucun paramétrage n'existe, settings vaut null et c'est au template de gérer ce cas.

Route : /politique-et-confidentialité (GET), nom app_politique_page.

Parameters
$entityManager : EntityManagerInterface

Gestionnaire d'entités utilisé pour lire les Settings.

Attributes
#[Route]
'/politique-et-confidentialité'
$name: 'app_politique_page'
Return values
Response

Page rendue (home/politique-and-confidentiality.html.twig).

showProductNfc()

Affiche le catalogue des modèles de cartes NFC proposés à la vente.

public showProductNfc(CardRepository $cardRepository) : Response

Ne remonte que les cartes non masquées (isHide à false), afin d'exclure du catalogue public les modèles désactivés en back-office.

Route : /modeles-de-cartes (GET), nom app_product_nfc.

Parameters
$cardRepository : CardRepository

Repository utilisé pour charger les modèles de cartes visibles.

Attributes
#[Route]
'/modeles-de-cartes'
$name: 'app_product_nfc'
Return values
Response

Page catalogue rendue (home/product.html.twig) avec la liste des cartes.

tarifs()

Affiche la grille tarifaire publique.

public tarifs(PlanRepository $planRepository) : Response

Utilise la même sélection que HomeController::enterpriseOffer() : plans actifs uniquement, triés par sortOrder croissant, mais avec un template différent.

Route : /tarifs (GET), nom app_tarifs.

Parameters
$planRepository : PlanRepository

Repository utilisé pour charger les plans actifs.

Attributes
#[Route]
'/tarifs'
$name: 'app_tarifs'
Return values
Response

Page rendue (home/tarifs.html.twig) avec la liste des plans.

termsAndConditionPage()

Affiche la page des conditions générales d'utilisation et de vente.

public termsAndConditionPage(EntityManagerInterface $entityManager) : Response

Fonctionne comme HomeController::politiqueAndConfidentialite() : le premier enregistrement de l'entité Settings est chargé et transmis au template, qui y puise le texte légal.

Route : /terme-et-condition (GET), nom app_term_condition.

Parameters
$entityManager : EntityManagerInterface

Gestionnaire d'entités utilisé pour lire les Settings.

Attributes
#[Route]
'/terme-et-condition'
$name: 'app_term_condition'
Return values
Response

Page rendue (home/terms-and-conditions.html.twig).

ViewRetailForProduct()

Affiche la fiche détaillée d'un modèle de carte NFC.

public ViewRetailForProduct(Card $card, Request $request, CardRepository $cardRepository) : Response

La carte est résolue automatiquement depuis le paramètre de route {id}. La méthode charge également les produits similaires, c'est-à-dire toutes les cartes partageant le même typeProduct (la carte courante n'est pas exclue de cette liste), et calcule la taille maximale autorisée pour un fichier de design en convertissant le paramètre applicatif design_file_max_bytes en mégaoctets arrondis au supérieur, valeur exploitée par le formulaire d'upload de la page.

Route : /produit-nfc/{id} (GET), nom app_product_retail.

Parameters
$card : Card

Carte ciblée, résolue depuis l'identifiant présent dans l'URL.

$request : Request

Requête HTTP courante (injectée mais non utilisée par la méthode).

$cardRepository : CardRepository

Repository utilisé pour récupérer les produits similaires.

Attributes
#[Route]
'/produit-nfc/{id}'
$name: 'app_product_retail'
Return values
Response

Fiche produit rendue (home/product-retail.html.twig).


        
On this page

Search results