/

XcrudConfig-Referenz

Jede Einstellung in src/Config.php, plus die statischen Hilfsmethoden, die direkt auf Xcrud verfügbar sind.

Datenbankverbindung

EigenschaftTypStandardBeschreibung
$dbHoststring'localhost'MySQL/MariaDB-Host.
$dbNamestring-Datenbankname.
$dbUserstring-Datenbankbenutzer.
$dbPassstring-Datenbankpasswort.
$dbCharsetstring'utf8mb4'Verbindungs-Zeichensatz, verwendet zum Aufbau des PDO-DSN über XcrudConfig::dsn().

UI & Oberfläche

EigenschaftTypStandardBeschreibung
$uistring'tailwind'Theme-Umschalter - 'none', 'tailwind' oder 'bootstrap'. Siehe Ein UI-Framework wählen.
$langstring''Standard-UI-Sprachcode. '' bedeutet die eingebauten englischen Strings, die fest in xcrud.js stecken. Ein nicht-leerer Code benötigt eine passende languages/{code}.ini; der eigene ->set_lang()-Aufruf einer Seite überschreibt dies.
$columnVisibilityTogglebooltrueFügt einen "Spalten"-Toolbar-Umschalter hinzu, mit dem der Bediener Grid-Spalten nach Belieben ein-/ausblenden kann. Nur site-weit, kein Override pro Seite.
$buttonTextbooltrueOb Zeilen-Aktions-Buttons (Bearbeiten/Entfernen/jeder ->button()) Icon+Beschriftung zeigen oder nur ein Icon mit Hover-Tooltip. Der eigene ->button_style()-Aufruf einer Tabelle kann dies pro Tabelle überschreiben.
$loadingIndicatorstring'text''text' (eine "Wird verarbeitet…"-Beschriftung), 'bar' (ein gemeinsamer Fortschrittsbalken am Seitenkopf) oder 'spinner' (ein kleines drehendes Symbol) während ein Grid lädt.
$intelligentColumnFitbooltrueSite-weiter Standard, um überlaufende Spalten in schmalen Containern hinter einem Aufklapp-Umschalter pro Zeile zu verstecken. Pro Seite überschreibbar über ->intelligent_column_fit().
$intelligentColumnArrangementbooltrueSite-weiter Standard, um jede Zeile auf Bildschirmen in Telefonbreite zu einer gestapelten Karte umzufließen. Pro Seite überschreibbar über ->intelligent_column_arrangement().

Die letzten beiden im Detail finden Sie unter Intelligente Spaltenanpassung & -anordnung.

Paginierung, Export & Import

EigenschaftTypStandardBeschreibung
$perPageint10Standard-Zeilenanzahl pro Seite.
$perPageOptionsarray[10, 25, 50, 100]Auswählbare Seitengrößen, angezeigt im "Zeilen pro Seite"-Steuerelement.
$exportRowLimitint50000Maximale Zeilenanzahl, die eine einzelne CSV-/XLSX-/PDF-Exportanfrage abruft, unabhängig davon, wie viele Zeilen tatsächlich dem aktuellen Filter entsprechen.
$importRowLimitint5000Maximale Anzahl Datenzeilen, die eine einzelne CSV-Importanfrage einfügt. Deutlich niedriger gehalten als $exportRowLimit - jede Zeile durchläuft ihren eigenen Insert plus Hooks.
$autocompleteLimitint8Maximale Anzahl Live-Vorschläge, die unter dem Suchfeld beim Tippen angezeigt werden.

Siehe CSV, XLSX & PDF exportieren.

Demo & Spielwiese

EigenschaftTypStandardBeschreibung
$demobooltrueAktiviert einen "View Code"-Button auf jedem Hinzufügen-/Bearbeiten-Formular, der den rohen PHP-Quellcode der Seite zeigt, die es definiert hat. Im Produktivbetrieb abschalten - siehe Produktivbetrieb einrichten.

Drittanbieter-Bibliotheken

$libraries ist ein Array von CDN- (oder lokalen libs/-) URLs, die bestimmte Felder progressiv verbessern. Lässt sich eine URL nicht laden, fällt das Feld auf sein natives HTML-Steuerelement zurück, statt kaputtzugehen:

SchlüsselErmöglicht
flatpickr_js / flatpickr_cssErweiterte Datum-/Datumzeit-Auswahl auf Datumsfeldern.
quill_js / quill_csschange_type('field', 'editor') - der Rich-Text-(WYSIWYG-)Editor.
choices_js / choices_cssDurchsuchbare/taggbare Dropdowns für ->relation(..., search: true).
cropper_js / cropper_cssDie interaktive Drag-to-Crop-Oberfläche für change_type('field', 'image', '', ['manual_crop' => true]).

Uploads

EigenschaftTypStandardBeschreibung
$uploadDirstring'media/'Wohin hochgeladene Dateien geschrieben werden (relativ zum Projekt-Root) - auch der URL-Pfad, unter dem sie ausgeliefert werden.
$uploadMaxSizeint10 * 1024 * 1024 (10 MB)Maximale Upload-Größe in Byte, zusätzlich zu dem, was php.inis eigene upload_max_filesize/post_max_size bereits deckeln.
$uploadAllowedImageExtarray['jpg','jpeg','png','gif','webp']Erlaubte Bild-Erweiterungen, geprüft sowohl gegen den Dateinamen als auch gegen die tatsächlich erkannten Bilddaten.
$uploadAllowedFileExtarray['pdf','doc','docx','xls','xlsx','ppt','pptx','txt','csv','zip','mp3','mp4']Erlaubte allgemeine Datei-Erweiterungen.
$uploadAllowedVideoExtarray['mp4','webm','ogg']Erlaubte Video-Erweiterungen.

Siehe Datei- & Bild-Uploads.

Statische Hilfsmethoden auf Xcrud

MethodeBeschreibung
Xcrud::humanize(string $field): stringVerwandelt einen camelCase- oder snake_case-Feldnamen in ein Title-Case-Label - z. B. werden 'customerNumber'/'payment_date' zu "Customer Number"/"Payment Date". Ein alleinstehendes Wort "id" wird zu "ID" großgeschrieben.
Xcrud::html(string $html, ?string $text = null): arrayUmschließt vertrauenswürdiges Markup, damit der Rückgabewert eines column_callback() im Grid als echtes HTML gerendert wird, statt als reiner Text escaped zu werden. Siehe Individuelles Zellen-Rendering: Badges & Avatare.
Xcrud::uiAssets(): stringGibt das theme.js-Tag des aktiven Themes sowie alle zusätzlichen CDN-/Font-<head>-Assets aus, für eine Seite ohne Widget, die trotzdem die JS-Globalen des Themes möchte.
Xcrud::assetVersion(string $path): stringLiefert eine ?v=<mtime>-Cache-Busting-Query-String für ein statisches Asset, das diesem Projekt gehört (nicht für CDN-Bibliotheken, die bereits über die URL versioniert sind).
echo Xcrud::humanize('paymentDate'); // "Payment Date"

// innerhalb eines column_callback():
return Xcrud::html('<span class="badge">Paid</span>');