Aller au contenu principal

Configuration YAML

Le SigmasoftDataTableBundle peut être entièrement configuré via YAML pour définir des comportements par défaut et personnaliser l'apparence de vos DataTables.

Configuration Complète

Créez ou éditez le fichier config/packages/sigmasoft_data_table.yaml :

sigmasoft_data_table:
# Configuration par défaut pour toutes les DataTables
defaults:
items_per_page: 10 # Nombre d'éléments par page (min: 1, max: 500)
enable_search: true # Activer la recherche
enable_pagination: true # Activer la pagination
enable_sorting: true # Activer le tri des colonnes
table_class: 'table table-striped table-hover align-middle' # Classes CSS
date_format: 'd/m/Y' # Format d'affichage des dates
pagination_sizes: [5, 10, 25, 50, 100] # Options du sélecteur de pagination

# Configuration des templates
templates:
datatable: '@SigmasoftDataTable/datatable.html.twig' # Template principal

# Configuration du cache (optionnel)
caching:
enabled: false # Activer le cache des configurations
ttl: 3600 # Durée de vie du cache en secondes

# Configuration du Maker (génération de code)
maker:
# Mapping des types Doctrine vers les types de colonnes
default_column_types:
string: 'text'
text: 'text'
integer: 'text'
float: 'text'
decimal: 'text'
boolean: 'badge' # Affichage en badge coloré
datetime: 'date'
datetime_immutable: 'date'
date: 'date'
date_immutable: 'date'
time: 'date'
time_immutable: 'date'

# Propriétés à exclure lors de la génération
excluded_properties:
- 'password'
- 'plainPassword'
- 'salt'
- 'token'
- 'resetToken'

# Génération automatique des boutons d'action
auto_add_actions: true

# Configuration des actions par défaut
default_actions:
show:
icon: 'bi bi-eye'
class: 'btn btn-sm btn-info'
title: 'Voir'
edit:
icon: 'bi bi-pencil-square'
class: 'btn btn-sm btn-warning'
title: 'Modifier'
delete:
type: 'delete'
icon: 'bi bi-trash'
class: 'btn btn-sm btn-danger'
title: 'Supprimer'
confirm: 'Êtes-vous sûr de vouloir supprimer cet élément ?'

Configuration par Environnement

Vous pouvez avoir des configurations différentes selon l'environnement :

Développement

config/packages/dev/sigmasoft_data_table.yaml

sigmasoft_data_table:
defaults:
items_per_page: 5 # Moins d'éléments pour tester la pagination
caching:
enabled: false # Pas de cache en dev

Production

config/packages/prod/sigmasoft_data_table.yaml

sigmasoft_data_table:
defaults:
items_per_page: 25
caching:
enabled: true
ttl: 86400 # Cache de 24h

Options de Configuration Détaillées

Defaults

OptionTypeDéfautDescription
items_per_pageinteger10Nombre d'éléments affichés par page
enable_searchbooleantrueActive/désactive la barre de recherche
enable_paginationbooleantrueActive/désactive la pagination
enable_sortingbooleantrueActive/désactive le tri des colonnes
table_classstring'table table-striped...'Classes CSS de la table
date_formatstring'd/m/Y'Format PHP pour l'affichage des dates
pagination_sizesarray[5,10,25,50,100]Options du sélecteur de taille

Templates

Permet de personnaliser les templates utilisés :

templates:
datatable: 'data_table/custom_table.html.twig'

Caching

Configuration du cache pour améliorer les performances :

caching:
enabled: true # Active le cache
ttl: 3600 # Durée de vie en secondes (1 heure)

Maker

Configure la génération automatique de code avec make:datatable :

default_column_types

Définit quel type de colonne utiliser pour chaque type Doctrine :

default_column_types:
string: 'editable' # Utilise EditableColumn pour les strings
boolean: 'badge' # Utilise BadgeColumn pour les booléens
datetime: 'date' # Utilise DateColumn pour les dates

excluded_properties

Liste des propriétés à ignorer lors de la génération :

excluded_properties:
- 'password'
- 'apiToken'
- '__initializer__' # Propriétés Doctrine
- '__cloner__'

default_actions

Configure les actions générées automatiquement :

default_actions:
show:
icon: 'fas fa-eye' # Font Awesome
class: 'btn btn-sm btn-primary'
title: 'Consulter'
custom_action:
route: 'app_entity_custom'
icon: 'bi bi-gear'
class: 'btn btn-sm btn-secondary'
title: 'Action personnalisée'

Surcharge dans le Code

La configuration YAML peut être surchargée dans le code :

$dataTable = $builder
->createDataTable(Product::class)
->setItemsPerPage(20) // Surcharge items_per_page
->enableSearch(false) // Désactive la recherche
->setTableClass('table table-dark'); // Change les classes CSS

Variables d'Environnement

Certaines options peuvent utiliser des variables d'environnement :

sigmasoft_data_table:
caching:
enabled: '%env(bool:DATATABLE_CACHE_ENABLED)%'
ttl: '%env(int:DATATABLE_CACHE_TTL)%'

Dans .env :

DATATABLE_CACHE_ENABLED=true
DATATABLE_CACHE_TTL=7200

Configuration Minimale

Si vous êtes satisfait des valeurs par défaut, aucune configuration n'est nécessaire. Le bundle fonctionnera avec ses paramètres par défaut.

Validation de la Configuration

Pour vérifier votre configuration :

php bin/console config:dump-reference sigmasoft_data_table

Pour voir la configuration active :

php bin/console debug:config sigmasoft_data_table

Exemples de Configurations

Configuration Minimaliste

sigmasoft_data_table:
defaults:
items_per_page: 25

Configuration E-commerce

sigmasoft_data_table:
defaults:
items_per_page: 50
table_class: 'table table-sm table-hover'
pagination_sizes: [25, 50, 100, 200]
maker:
default_column_types:
decimal: 'badge' # Prix en badge
boolean: 'text' # Stock oui/non
excluded_properties:
- 'deletedAt'
- 'updatedBy'

Configuration Admin

sigmasoft_data_table:
defaults:
enable_search: true
enable_sorting: true
table_class: 'table table-bordered table-responsive'
caching:
enabled: true
ttl: 600 # 10 minutes
maker:
auto_add_actions: true
default_actions:
show:
icon: 'fas fa-eye'
class: 'btn btn-sm btn-outline-info'
edit:
icon: 'fas fa-edit'
class: 'btn btn-sm btn-outline-warning'
delete:
icon: 'fas fa-trash-alt'
class: 'btn btn-sm btn-outline-danger'
confirm: 'Cette action est irréversible. Continuer ?'

Prochaines Étapes