/

Referencia de XcrudConfig

Todos los ajustes de src/Config.php, además de los métodos auxiliares estáticos disponibles en el propio Xcrud.

Conexión a la base de datos

PropiedadTipoPor defectoDescripción
$dbHoststring'localhost'Host de MySQL/MariaDB.
$dbNamestring-Nombre de la base de datos.
$dbUserstring-Usuario de la base de datos.
$dbPassstring-Contraseña de la base de datos.
$dbCharsetstring'utf8mb4'Juego de caracteres de la conexión, usado para construir el DSN de PDO mediante XcrudConfig::dsn().

Interfaz e interacción

PropiedadTipoPor defectoDescripción
$uistring'tailwind'Selector de tema - 'none', 'tailwind' o 'bootstrap'. Consulta Elegir un framework de interfaz.
$langstring''Código de idioma por defecto de la interfaz. '' significa las cadenas en inglés integradas en xcrud.js. Un código no vacío debe tener un languages/{code}.ini correspondiente; la propia ->set_lang() de una página anula este valor.
$columnVisibilityTogglebooltrueAñade un alternador "Columnas" en la barra de herramientas que permite al operador mostrar/ocultar columnas de la cuadrícula a voluntad. Solo a nivel de sitio, sin anulación por página.
$buttonTextbooltrueSi los botones de acción por fila (Editar/Eliminar/cada ->button()) muestran icono+etiqueta, o solo icono con un tooltip al pasar el ratón. El propio ->button_style() de una tabla puede anular esto por tabla.
$loadingIndicatorstring'text''text' (una etiqueta "Processing…"), 'bar' (una barra de progreso compartida en la parte superior de la página) o 'spinner' (un pequeño icono giratorio) mientras carga una cuadrícula.
$intelligentColumnFitbooltrueValor por defecto a nivel de sitio para ocultar columnas que desbordan tras un alternador de expansión por fila en contenedores estrechos. Se puede anular por página con ->intelligent_column_fit().
$intelligentColumnArrangementbooltrueValor por defecto a nivel de sitio para reorganizar cada fila en una tarjeta apilada en pantallas de ancho de teléfono. Se puede anular por página con ->intelligent_column_arrangement().

Consulta Ajuste y disposición inteligente de columnas para los dos últimos en detalle.

Paginación, exportación e importación

PropiedadTipoPor defectoDescripción
$perPageint10Filas por página por defecto.
$perPageOptionsarray[10, 25, 50, 100]Tamaños de página seleccionables mostrados en el control "filas por página".
$exportRowLimitint50000Número máximo de filas que una sola petición de exportación CSV/XLSX/PDF traerá, independientemente de cuántas filas coincidan realmente con el filtro actual.
$importRowLimitint5000Número máximo de filas de datos que una sola petición de importación CSV insertará. Se mantiene mucho más bajo que $exportRowLimit - cada fila ejecuta su propia inserción más los hooks.
$autocompleteLimitint8Número máximo de sugerencias en vivo mostradas bajo el cuadro de búsqueda mientras el usuario escribe.

Consulta Exportar a CSV, XLSX y PDF.

Demo y patio de pruebas

PropiedadTipoPor defectoDescripción
$demobooltrueActiva un botón "View Code" en cada formulario de Añadir/Editar, mostrando el código PHP en bruto de la página que lo definió. Desactívalo en producción - consulta Despliegue en producción.

Librerías de terceros

$libraries es un array de URLs de CDN (o de la carpeta local libs/) que mejoran progresivamente ciertos campos. Si una URL no llega a cargar, el campo recurre a su control HTML nativo en lugar de romperse:

ClavePotencia
flatpickr_js / flatpickr_cssSelector de fecha/fecha y hora más completo en campos de fecha.
quill_js / quill_csschange_type('field', 'editor') - el editor de texto enriquecido (WYSIWYG).
choices_js / choices_cssMenús desplegables con búsqueda/etiquetas para ->relation(..., search: true).
cropper_js / cropper_cssLa interfaz interactiva de recorte por arrastre para change_type('field', 'image', '', ['manual_crop' => true]).

Subidas

PropiedadTipoPor defectoDescripción
$uploadDirstring'media/'Dónde se escriben los archivos subidos (relativo a la raíz del proyecto) - también la ruta de URL desde la que se sirven.
$uploadMaxSizeint10 * 1024 * 1024 (10MB)Tamaño máximo de subida en bytes, aplicado además de lo que ya limiten upload_max_filesize/post_max_size del propio php.ini.
$uploadAllowedImageExtarray['jpg','jpeg','png','gif','webp']Extensiones de imagen permitidas, verificadas tanto contra el nombre de archivo como contra los datos de imagen realmente detectados.
$uploadAllowedFileExtarray['pdf','doc','docx','xls','xlsx','ppt','pptx','txt','csv','zip','mp3','mp4']Extensiones de archivo genérico permitidas.
$uploadAllowedVideoExtarray['mp4','webm','ogg']Extensiones de vídeo permitidas.

Consulta Subida de archivos e imágenes.

Métodos auxiliares estáticos en Xcrud

MétodoDescripción
Xcrud::humanize(string $field): stringConvierte un nombre de campo en camelCase o snake_case en una etiqueta en formato título - por ejemplo, 'customerNumber'/'payment_date' se convierten en "Customer Number"/"Payment Date". Una palabra "id" suelta se pone en mayúsculas como "ID".
Xcrud::html(string $html, ?string $text = null): arrayEnvuelve marcado de confianza para que el retorno de un column_callback() se renderice como HTML real en la cuadrícula en lugar de escaparse como texto plano. Consulta Renderizado personalizado de celdas: insignias y avatares.
Xcrud::uiAssets(): stringEmite la etiqueta theme.js del tema activo más cualquier recurso extra de CDN/fuentes para <head>, para una página sin widget que aun así quiere los globales JS del tema.
Xcrud::assetVersion(string $path): stringDevuelve una cadena de consulta ?v=<mtime> para invalidar la caché de un recurso estático propio de este proyecto (no para librerías de CDN, que ya están versionadas por URL).
echo Xcrud::humanize('paymentDate'); // "Payment Date"

// dentro de un column_callback():
return Xcrud::html('<span class="badge">Paid</span>');