BCard - Documentation technique

AdminCardModelController extends AbstractController
in package

Administre les modèles de carte (`CardModel`) proposés lors de la personnalisation.

Fournit un CRUD complet sur les gabarits graphiques : création, édition, consultation, activation/désactivation et suppression. Chaque modèle porte deux visuels (recto et verso) stockés dans public/uploads/card_models ; le contrôleur gère leur upload, le remplacement de l'ancien fichier et leur effacement physique lors de la suppression du modèle.

Préfixe de route : /admin/card-models. Réservé à ROLE_ADMIN pour toutes les actions.

Attributes
#[IsGranted]
'ROLE_ADMIN'
#[Route]
'/admin/card-models'

Table of Contents

Properties

$cardModelRepository  : CardModelRepository
$entityManager  : EntityManagerInterface

Methods

__construct()  : mixed
delete()  : Response
Supprime définitivement un modèle de carte et ses visuels.
edit()  : Response
Modifie un modèle de carte existant.
index()  : Response
Affiche la liste paginée des modèles de carte.
new()  : Response
Crée un nouveau modèle de carte.
show()  : Response
Affiche le détail d'un modèle de carte.
toggleStatus()  : Response
Bascule l'état actif/inactif d'un modèle de carte.
deleteFile()  : void
Efface physiquement un fichier de `public/uploads/<répertoire>`.
deleteModelImages()  : void
Efface du disque les deux visuels associés à un modèle de carte.
handleFileUploads()  : void
Traite l'upload des visuels recto et verso soumis dans le formulaire.
uploadFile()  : string|null
Déplace un fichier uploadé vers `public/uploads/<répertoire>` sous un nom unique.

Properties

Methods

__construct()

public __construct(EntityManagerInterface $entityManager, CardModelRepository $cardModelRepository) : mixed
Parameters
$entityManager : EntityManagerInterface

Gestionnaire Doctrine utilisé pour persister, supprimer et flush() les modèles.

$cardModelRepository : CardModelRepository

Dépôt des modèles de carte, utilisé pour construire la requête de listing.

delete()

Supprime définitivement un modèle de carte et ses visuels.

public delete(CardModel $cardModel, Request $request) : Response

La suppression n'est effectuée que si le jeton CSRF delete<id> transmis dans _token est valide ; sinon un flash d'erreur « Token CSRF invalide. » est posé et rien n'est modifié. En cas de jeton valide, les fichiers recto/verso sont d'abord effacés du disque par AdminCardModelController::deleteModelImages(), puis l'entité est retirée.

Route : /admin/card-models/{id}/delete (POST), nom admin_card_models_delete.

Parameters
$cardModel : CardModel

Modèle à supprimer, résolu depuis {id}.

$request : Request

Requête HTTP portant le jeton CSRF _token.

Attributes
#[Route]
'/{id}/delete'
$name: 'admin_card_models_delete'
$methods: ['POST']
Return values
Response

Redirection vers admin_card_models_index dans les deux cas.

edit()

Modifie un modèle de carte existant.

public edit(CardModel $cardModel, Request $request) : Response

Traite le formulaire CardModelType lié au modèle. À la soumission valide, applique AdminCardModelController::handleFileUploads() (qui remplace et efface les anciens visuels si de nouveaux fichiers sont fournis), horodate updatedAt à maintenant, puis flush().

Route : /admin/card-models/{id}/edit (toutes méthodes), nom admin_card_models_edit.

Parameters
$cardModel : CardModel

Modèle à modifier, résolu depuis {id}.

$request : Request

Requête HTTP traitée par le formulaire.

Attributes
#[Route]
'/{id}/edit'
$name: 'admin_card_models_edit'
Return values
Response

Formulaire HTML admin/card_model/edit.html.twig, ou redirection vers admin_card_models_index après enregistrement.

index()

Affiche la liste paginée des modèles de carte.

public index(Request $request, PaginatorInterface $paginator) : Response

Les modèles sont triés par date de création décroissante et paginés par blocs de 10 (paramètre de query page). Actifs et inactifs sont affichés indifféremment.

Route : /admin/card-models (toutes méthodes), nom admin_card_models_index.

Parameters
$request : Request

Requête HTTP fournissant le numéro de page.

$paginator : PaginatorInterface

Paginateur KnpPaginator.

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

Page HTML admin/card_model/index.html.twig.

new()

Crée un nouveau modèle de carte.

public new(Request $request) : Response

Instancie un CardModel vierge et traite le formulaire CardModelType. À la soumission valide, les visuels recto/verso sont traités par AdminCardModelController::handleFileUploads() avant persistance de l'entité.

Route : /admin/card-models/new (toutes méthodes), nom admin_card_models_new.

Parameters
$request : Request

Requête HTTP traitée par le formulaire.

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

Formulaire HTML admin/card_model/new.html.twig, ou redirection vers admin_card_models_index après création.

show()

Affiche le détail d'un modèle de carte.

public show(CardModel $cardModel) : Response

Se contente de rendre le template de consultation avec l'entité résolue, sans traitement ni requête supplémentaire.

Route : /admin/card-models/{id}/show (toutes méthodes), nom admin_card_models_show.

Parameters
$cardModel : CardModel

Modèle consulté, résolu depuis {id}.

Attributes
#[Route]
'/{id}/show'
$name: 'admin_card_models_show'
Return values
Response

Page HTML admin/card_model/show.html.twig.

toggleStatus()

Bascule l'état actif/inactif d'un modèle de carte.

public toggleStatus(CardModel $cardModel) : Response

Inverse le drapeau active, met updatedAt à la date courante, flush() puis pose un flash de succès dont le libellé reflète le nouvel état (« activé » ou « désactivé »). Un modèle inactif n'est plus retourné par CardModelRepository::findActiveModels() et disparaît donc des choix proposés à la commande.

Route : /admin/card-models/{id}/toggle-status (toutes méthodes), nom admin_card_models_toggle_status.

Parameters
$cardModel : CardModel

Modèle dont l'état est basculé, résolu depuis {id}.

Attributes
#[Route]
'/{id}/toggle-status'
$name: 'admin_card_models_toggle_status'
Return values
Response

Redirection vers admin_card_models_index.

deleteFile()

Efface physiquement un fichier de `public/uploads/<répertoire>`.

private deleteFile(string $filename, string $directory) : void

L'appel à unlink() n'est réalisé que si le fichier existe ; sinon la méthode est sans effet et ne signale rien.

Parameters
$filename : string

Nom du fichier à effacer.

$directory : string

Nom du sous-répertoire sous public/uploads/.

deleteModelImages()

Efface du disque les deux visuels associés à un modèle de carte.

private deleteModelImages(CardModel $cardModel) : void

Appelle AdminCardModelController::deleteFile() sur frontImage puis backImage, uniquement lorsque ces références sont renseignées. Utilisée avant la suppression de l'entité pour éviter les fichiers orphelins.

Parameters
$cardModel : CardModel

Modèle dont les visuels doivent être effacés.

handleFileUploads()

Traite l'upload des visuels recto et verso soumis dans le formulaire.

private handleFileUploads(mixed $form, CardModel $cardModel) : void

Pour chacun des champs frontImageFile et backImageFile : si un fichier a été envoyé, il est déplacé via AdminCardModelController::uploadFile() dans le sous-répertoire card_models. Ce n'est qu'en cas de succès (nom de fichier retourné non nul) que l'éventuel ancien visuel est effacé du disque et que la nouvelle référence est affectée à l'entité ; un échec d'upload laisse donc l'ancien visuel intact.

Parameters
$form : mixed

Formulaire soumis (FormInterface), non typé dans la signature, dont on lit les champs frontImageFile et backImageFile.

$cardModel : CardModel

Modèle dont les visuels sont mis à jour.

uploadFile()

Déplace un fichier uploadé vers `public/uploads/<répertoire>` sous un nom unique.

private uploadFile(mixed $file, string $directory) : string|null

Le nom cible est un uniqid() suivi de l'extension devinée. Le répertoire de destination est créé récursivement avec les droits 0755 s'il n'existe pas. En cas de FileException pendant le déplacement, un flash d'erreur détaillant l'exception est posé et null est retourné, ce qui signale l'échec à l'appelant.

Parameters
$file : mixed

Fichier uploadé (UploadedFile), non typé dans la signature.

$directory : string

Nom du sous-répertoire cible sous public/uploads/ (par exemple card_models).

Return values
string|null

Nom de fichier généré en cas de succès, null si le déplacement a échoué.


        
On this page

Search results