/

Référence XcrudConfig

Chaque réglage de src/Config.php, ainsi que les méthodes d'assistance statiques disponibles sur Xcrud lui-même.

Connexion à la base de données

PropriétéTypeDéfautDescription
$dbHoststring'localhost'Hôte MySQL/MariaDB.
$dbNamestring-Nom de la base de données.
$dbUserstring-Utilisateur de la base de données.
$dbPassstring-Mot de passe de la base de données.
$dbCharsetstring'utf8mb4'Jeu de caractères de connexion, utilisé pour construire le DSN PDO via XcrudConfig::dsn().

UI et interface

PropriétéTypeDéfautDescription
$uistring'tailwind'Sélecteur de thème - 'none', 'tailwind' ou 'bootstrap'. Voyez Choisir un framework UI.
$langstring''Code de langue UI par défaut. '' signifie les chaînes anglaises intégrées dans xcrud.js. Un code non vide doit avoir un fichier languages/{code}.ini correspondant ; le propre ->set_lang() d'une page prévaut sur ce réglage.
$columnVisibilityTogglebooltrueAjoute une bascule « Colonnes » dans la barre d'outils permettant à l'opérateur d'afficher/masquer les colonnes de la grille à volonté. Uniquement pour tout le site, pas de surcharge par page.
$buttonTextbooltrueDétermine si les boutons d'action de ligne (Éditer/Supprimer/chaque ->button()) affichent icône+libellé, ou icône seule avec une infobulle au survol. Le propre ->button_style() d'une table peut le surcharger par table.
$loadingIndicatorstring'text''text' (un libellé « Traitement en cours… »), 'bar' (une barre de progression partagée en haut de page) ou 'spinner' (une petite icône tournante) pendant le chargement d'une grille.
$intelligentColumnFitbooltrueValeur par défaut pour tout le site permettant de masquer les colonnes en débordement derrière une bascule d'expansion par ligne sur des conteneurs étroits. Surchargeable par page via ->intelligent_column_fit().
$intelligentColumnArrangementbooltrueValeur par défaut pour tout le site permettant de réorganiser chaque ligne en carte empilée sur les écrans de largeur téléphone. Surchargeable par page via ->intelligent_column_arrangement().

Voyez Ajustement et disposition intelligents des colonnes pour le détail des deux derniers.

Pagination, export et import

PropriétéTypeDéfautDescription
$perPageint10Nombre de lignes par page par défaut.
$perPageOptionsarray[10, 25, 50, 100]Tailles de page sélectionnables affichées dans le contrôle « lignes par page ».
$exportRowLimitint50000Nombre maximal de lignes qu'une seule requête d'export CSV/XLSX/PDF récupérera, quel que soit le nombre de lignes réellement conformes au filtre courant.
$importRowLimitint5000Nombre maximal de lignes de données qu'une seule requête d'import CSV insérera. Maintenu bien plus bas que $exportRowLimit - chaque ligne exécute sa propre insertion plus ses hooks.
$autocompleteLimitint8Nombre maximal de suggestions en direct affichées sous la zone de recherche pendant que l'utilisateur tape.

Voyez Exporter en CSV, XLSX & PDF.

Démo et bac à sable

PropriétéTypeDéfautDescription
$demobooltrueActive un bouton « Voir le code » sur chaque formulaire d'ajout/édition, montrant le source PHP brut de la page qui l'a défini. À désactiver en production - voyez Déployer en production.

Bibliothèques tierces

$libraries est un tableau d'URL CDN (ou locales sous libs/) qui améliorent progressivement certains champs. Si une URL ne se charge pas, le champ se rabat sur son contrôle HTML natif au lieu de se casser :

CléAlimente
flatpickr_js / flatpickr_cssSélecteur de date/date-heure plus riche sur les champs de date.
quill_js / quill_csschange_type('field', 'editor') - l'éditeur de texte enrichi (WYSIWYG).
choices_js / choices_cssListes déroulantes avec recherche/tags pour ->relation(..., search: true).
cropper_js / cropper_cssL'interface interactive de recadrage par glisser-déposer pour change_type('field', 'image', '', ['manual_crop' => true]).

Téléversements

PropriétéTypeDéfautDescription
$uploadDirstring'media/'Où les fichiers téléversés sont écrits (relatif à la racine du projet) - aussi le chemin URL depuis lequel ils sont servis.
$uploadMaxSizeint10 * 1024 * 1024 (10 Mo)Taille maximale de téléversement en octets, appliquée en plus de ce que upload_max_filesize/post_max_size de php.ini plafonnent déjà.
$uploadAllowedImageExtarray['jpg','jpeg','png','gif','webp']Extensions d'image autorisées, vérifiées à la fois par rapport au nom de fichier et aux données d'image réellement détectées.
$uploadAllowedFileExtarray['pdf','doc','docx','xls','xlsx','ppt','pptx','txt','csv','zip','mp3','mp4']Extensions de fichiers génériques autorisées.
$uploadAllowedVideoExtarray['mp4','webm','ogg']Extensions vidéo autorisées.

Voyez Téléversements de fichiers et d'images.

Méthodes d'assistance statiques sur Xcrud

MéthodeDescription
Xcrud::humanize(string $field): stringTransforme un nom de champ en camelCase ou snake_case en un libellé Title Case - par exemple 'customerNumber'/'payment_date' deviennent « Customer Number »/« Payment Date ». Un mot "id" isolé est mis en majuscules en « ID ».
Xcrud::html(string $html, ?string $text = null): arrayEnveloppe du balisage fiable pour qu'un retour de column_callback() s'affiche comme du véritable HTML dans la grille au lieu d'être échappé en texte brut. Voyez Rendu personnalisé des cellules : badges et avatars.
Xcrud::uiAssets(): stringÉmet la balise theme.js du thème actif ainsi que tout asset CDN/police supplémentaire pour <head>, pour une page sans widget qui veut quand même les globales JS du thème.
Xcrud::assetVersion(string $path): stringRenvoie une chaîne de requête de contournement de cache ?v=<mtime> pour un asset statique appartenant à ce projet (pas pour les bibliothèques CDN, déjà versionnées par URL).
echo Xcrud::humanize('paymentDate'); // "Payment Date"

// à l'intérieur d'un column_callback():
return Xcrud::html('<span class="badge">Paid</span>');