BCard - Documentation technique

SeoService
in package

Construit les métadonnées SEO et de partage social des pages.

Le service maintient, pour la durée d'une requête, un jeu de métadonnées initialisé avec les valeurs par défaut de BCard (titre, description, mots-clés, image Open Graph, carte Twitter). Les setters, chaînables, permettent à un contrôleur de surcharger ces valeurs avant que le gabarit n'appelle self::getMetadata() ou self::generateMetaTags(). Il s'appuie sur la requête courante et sur le générateur d'URL pour résoudre l'URL canonique et convertir les chemins d'image en URL absolues. Attention : le service étant partagé, les surcharges appliquées persistent pour toute la durée de la requête.

Table of Contents

Properties

$metadata  : array<string, string|null>
Métadonnées courantes de la page, préremplies avec les valeurs par défaut du site.
$requestStack  : RequestStack
$urlGenerator  : UrlGeneratorInterface

Methods

__construct()  : mixed
generateMetaTags()  : string
Assemble le bloc HTML complet des balises `<title>` et `<meta>`.
getMetadata()  : array<string, string|null>
Retourne l'ensemble des métadonnées courantes.
setDescription()  : self
Définit la description de la page.
setKeywords()  : self
Remplace la liste des mots-clés de la page.
setOgImage()  : self
Définit l'image de partage social.
setOgType()  : self
Définit le type Open Graph de la page.
setOgUrl()  : self
Définit l'URL canonique déclarée dans les métadonnées Open Graph.
setTitle()  : self
Définit le titre de la page.
getAbsoluteUrl()  : string
Convertit un chemin de ressource en URL absolue.
getCurrentUrl()  : string
Détermine l'URL de la page en cours.

Properties

$metadata

Métadonnées courantes de la page, préremplies avec les valeurs par défaut du site.

private array<string, string|null> $metadata = ['title' => 'BCard - Cartes de visite digitales professionnelles', 'description' => 'Créez et partagez vos cartes de visite digitales professionnelles. Solution moderne pour le networking et la visibilité en ligne.', 'keywords' => 'bcard, card, binn, netorworking, djelicard, carte de visite, NFC, connectée, professionnelle, carte de visite digitale, professionnel, profesionnal, numérique, QR code, partage contact', 'og_title' => 'BCard - Cartes de visite digitales', 'og_description' => 'Créez et partagez vos cartes de visite digitales professionnelles', 'og_image' => '/assets/new_design/image/bcard.png', 'og_url' => null, 'og_type' => 'website', 'twitter_card' => 'summary_large_image', 'twitter_site' => '@bcard_app']

La clé og_url vaut null tant qu'elle n'a pas été explicitement définie ; elle est alors résolue à la volée depuis l'URL courante lors de la première lecture.

$requestStack

private RequestStack $requestStack

$urlGenerator

private UrlGeneratorInterface $urlGenerator

Methods

__construct()

public __construct(RequestStack $requestStack, UrlGeneratorInterface $urlGenerator) : mixed
Parameters
$requestStack : RequestStack

Pile de requêtes, utilisée pour lire l'URI courante.

$urlGenerator : UrlGeneratorInterface

Générateur d'URL, utilisé comme repli et pour absolutiser les chemins d'image via la route app_home.

generateMetaTags()

Assemble le bloc HTML complet des balises `<title>` et `<meta>`.

public generateMetaTags() : string

Produit, dans l'ordre : les balises de base (titre, description, mots-clés, robots en index, follow), les propriétés Open Graph — dont l'image absolutisée par self::getAbsoluteUrl() et un og:site_name fixé à « BCard » —, les balises de carte Twitter réutilisant le titre et la description Open Graph, puis des balises complémentaires codées en dur (author, language à fr, revisit-after). Toutes les valeurs sont échappées par htmlspecialchars(). Le résultat contenant du HTML brut, il doit être rendu sans double échappement (filtre |raw côté Twig).

Return values
string

Balises HTML séparées par des sauts de ligne.

getMetadata()

Retourne l'ensemble des métadonnées courantes.

public getMetadata() : array<string, string|null>

Résout paresseusement og_url depuis l'URL courante si elle n'a pas encore été définie, et mémorise cette résolution dans l'état interne du service.

Return values
array<string, string|null>

Métadonnées prêtes à être exploitées par un gabarit.

setDescription()

Définit la description de la page.

public setDescription(string $description) : self

La valeur est appliquée simultanément à la balise meta description et à la description Open Graph, également reprise par la carte Twitter.

Parameters
$description : string

Description de la page.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

setKeywords()

Remplace la liste des mots-clés de la page.

public setKeywords(string $keywords) : self

Écrase intégralement la liste par défaut ; les mots-clés génériques du site ne sont pas conservés.

Parameters
$keywords : string

Mots-clés séparés par des virgules.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

setOgImage()

Définit l'image de partage social.

public setOgImage(string $imagePath) : self

Le chemin est stocké tel quel ; sa conversion en URL absolue n'intervient qu'au moment du rendu, dans self::generateMetaTags(). L'image alimente à la fois og:image et twitter:image.

Parameters
$imagePath : string

Chemin relatif à la racine du site ou URL absolue commençant par http.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

setOgType()

Définit le type Open Graph de la page.

public setOgType(string $type) : self

La valeur n'est pas validée par rapport au vocabulaire Open Graph ; elle vaut website par défaut.

Parameters
$type : string

Type Open Graph, par exemple website, article ou profile.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

setOgUrl()

Définit l'URL canonique déclarée dans les métadonnées Open Graph.

public setOgUrl([string|null $url = null ]) : self

Lorsque aucune URL n'est fournie, l'URI de la requête courante est utilisée — ou, en l'absence de requête (contexte console), l'URL absolue de la route app_home.

Parameters
$url : string|null = null

URL à déclarer, ou null pour reprendre l'URL courante.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

setTitle()

Définit le titre de la page.

public setTitle(string $title) : self

Le titre HTML est suffixé par « - BCard » alors que le titre Open Graph reçoit la valeur brute, sans suffixe.

Parameters
$title : string

Titre de la page, sans le nom du site.

Return values
self

L'instance courante, pour permettre le chaînage des appels.

getAbsoluteUrl()

Convertit un chemin de ressource en URL absolue.

private getAbsoluteUrl(string $path) : string

Un chemin commençant déjà par http est retourné inchangé — ce test couvre donc aussi bien http:// que https://. Sinon, le chemin est concaténé à l'URL absolue de la route app_home, les barres obliques surnuméraires étant élaguées de part et d'autre pour éviter les doubles séparateurs.

Parameters
$path : string

Chemin relatif à la racine du site, ou URL déjà absolue.

Return values
string

URL absolue exploitable par les réseaux sociaux.

getCurrentUrl()

Détermine l'URL de la page en cours.

private getCurrentUrl() : string

Retourne l'URI complète de la requête courante, chaîne de requête comprise. En l'absence de requête — exécution en ligne de commande, par exemple — la méthode se rabat sur l'URL absolue de la route app_home.

Return values
string

URL absolue de la page courante ou de la page d'accueil.


        
On this page

Search results