FiQueLa supports ten file formats through dedicated stream classes. Each format is identified by a short key used in FQL syntax and in theDocumentation Index
Fetch the complete documentation index at: https://docs.fiquela.io/llms.txt
Use this file to discover all available pages before exploring further.
Enum\Format enum.
Format table
| Key | Name | Class | File | String |
|---|---|---|---|---|
csv | CSV | FQL\Stream\Csv | Yes | No |
xml | XML | FQL\Stream\Xml | Yes | No |
xls | XLSX | FQL\Stream\Xls | Yes | No |
ods | ODS | FQL\Stream\Ods | Yes | No |
jsonFile | JSON stream | FQL\Stream\JsonStream | Yes | No |
ndJson | Newline-delimited JSON | FQL\Stream\NDJson | Yes | No |
json | JSON (json_decode) | FQL\Stream\Json | Yes | Yes |
yaml | YAML | FQL\Stream\Yaml | Yes | Yes |
neon | NEON | FQL\Stream\Neon | Yes | Yes |
log | HTTP Access Log | FQL\Stream\AccessLog | Yes | No |
json, yaml, and neon also accept raw strings via Stream\Provider::fromString(). All other formats require a file path.
Opening formats
You can open any format in three ways:Stream\Provider::fromFile()— auto-detects format from the file extension, or accepts an explicitEnum\Format.- Direct class
open()— call the class for the specific format directly. - FQL string syntax — embed the format and path in an FQL
FROMclause.
- CSV
- XML
- XLSX
- ODS
- JSON stream
- NDJSON
- JSON (in-memory)
- YAML
- NEON
- HTTP access log
CSV supports format-specific parameters:
encoding (default utf-8), delimiter (default ,), enclosure (default "), useHeader (default 1), and bom (default 0). Pass them via the FQL string syntax: csv(data.csv, "windows-1250", ";") or with named parameters such as csv(data.csv, enclosure: "'", bom: "1"). CSV is read and written with native PHP fgetcsv / fputcsv and detects UTF-8, UTF-16, and UTF-32 BOMs automatically.Format-specific parameters
CSV, XML, and LOG accept additional configuration parameters.CSV parameters
| Parameter | Default | Description |
|---|---|---|
encoding | utf-8 | Input file encoding. Any encoding accepted by iconv. Non-UTF-8 input is transcoded via a convert.iconv.<src>/UTF-8 PHP stream filter. |
delimiter | , | Single-character field separator. |
enclosure | " | Single-character field enclosure used by fgetcsv / fputcsv. |
useHeader | 1 | 1 to treat the first row as column headers, 0 otherwise. |
bom | 0 | 1 to emit a UTF-8 BOM when writing. The reader detects UTF-8, UTF-16 LE/BE, and UTF-32 LE/BE BOMs automatically and skips them. |
As of FiQueLa 3.0, CSV runs on native PHP primitives — the previous
league/csv dependency has been dropped. Type coercion is lazy: cells stay as strings until a comparison or arithmetic operation requires a typed value, and empty cells satisfy IS NULL.XML parameters
| Parameter | Default | Description |
|---|---|---|
encoding | utf-8 | Input file encoding. |
Empty XML elements
Empty leaf elements (<foo/> or <foo></foo>) surface as an empty string '', so SQL-style predicates work directly:
<foo id="1"/>) still expose their @attributes structure, mixed content (<foo id="1">text</foo>) still surfaces text under the value key, and populated leaves (<foo>text</foo>) still return their text content.
Prior to FiQueLa 3.0.1, empty leaf elements surfaced as an empty array
[], which forced consumers to probe with IS ARRAY or is_array() to detect missing values. From 3.0.1 onward, they behave as empty strings — use IS NULL, = '', or IF(field IS NULL, …) instead.LOG parameters
| Parameter | Default | Description |
|---|---|---|
format | nginx_combined | Log format profile name or custom for a custom pattern. |
pattern | — | Custom Apache log_format pattern string. Only used when format is custom. |
| Profile | Pattern |
|---|---|
nginx_combined | %h - %u [%t] "%r" %>s %b "%{Referer}i" "%{User-Agent}i" (default) |
nginx_main | %h - %u [%t] "%r" %>s %b |
apache_combined | %h %l %u [%t] "%r" %>s %b "%{Referer}i" "%{User-Agent}i" |
apache_common | %h %l %u [%t] "%r" %>s %b |
statusis cast to integertimeis converted toY-m-d H:i:sformat%D(request time in microseconds) is converted to milliseconds%r(request line) is split intomethod,path, andprotocolfields
| Field | Type | Description |
|---|---|---|
_raw | string | Original unparsed log line |
_error | string | null | null on success, error message on parse failure |
Malformed log lines do not throw exceptions. Instead, they produce a row with
_error containing the error message and _raw containing the original line. This allows you to filter or inspect bad lines with standard FQL conditions.Directory provider
FQL\Stream\Dir is a special provider that treats a directory as its data source. It lets you query metadata about files recursively across a directory tree.
dir format key: