Skip to main content

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​