Hallo Werner,
ich denke, welche Werkzeuge und Tools man verwendet, hängt stark von den Aufgaben ab. Was für Software erstellst du?
Wir machen ausschließlich unsere Hotelsoftware und sonst nichts. Dort natürlich alles vom Kellnerfunkterminal über die Kassen, die Hotelverwaltung und das Onlinebuchen.
Kundenaufträge gibt es bei uns praktisch nicht.
Die Software ist großteils rund um den Zimmerplan und die Gästekartei aufgebaut. Deshalb sind hier unsere Anforderungen auch speziell.
Wir warten unsere Software weiterhin mit FW/Harbour, aber wir arbeiten hart an der Onlineversion. Gestartet sind wir hier mit mod_harbour, aber in der Zwischenzeit mit PHP. Deshalb wurde es auch notwendig, den DBF-Zugriff mit Low-Level-Funktionen zu löschen, denn es gibt dort nicht viel bzw. ist auch nichts verfügbar, das noch gewartet wird.
Aber das Modul php4dbf funktioniert in der Zwischenzeit richtig gut. Die Indizes und Memofelder unterstützen wir nicht. Deshalb konvertieren wir die DBF-Dateien und lagern die Memoeinträge in eigene Files aus. Hier brauchen wir dann die oben beschriebene Volltextsuche.
Im Moment arbeitet die Onlineversion mit einem Microservice mit der Offlineversion zusammen. Unsere Tests haben Zeiten, die wir zum Speichern eines Records brauchen, von unter 150 ms ergeben. Ich poste später ein GIF, wo man Inline-Editing sieht. Jede Änderung in einem Tabellenfeld wird über das Microservice sofort in die DBF durchgeschrieben.
Ausgelesen werden die Daten aber direkt über PHP mit dem php4dbf-Treiber.
LG
Otto
Code: Alles auswählen
/**
* php4dbf Library
*
* This library provides functions to interact with DBF (dBASE) files using PHP.
* It includes functions for opening DBF files, reading headers and field descriptions,
* properly padding values, and adding records to DBF files.
*
* Functions:
* - php4dbf_logline: Logs messages to a log file.
* - php4dbf_openDbf: Opens a DBF file.
* - php4dbf_DBUse: Reads all necessary information from a DBF file at once and returns it.
* - php4dbf_getDbfHeader: Retrieves the header of a DBF file.
* - php4dbf_getFieldDescriptors: Retrieves the field descriptions of a DBF file.
* - php4dbf_padValue: Properly pads values based on their type.
* - php4dbf_addRecordToDbf: Adds records to a DBF file.
* - php4dbf_calculateRecordLength: Calculates the record length based on field descriptors.
* - php4dbf_updateRecord: Updates a record in a DBF file.
* - php4dbf_deleteRecord: Deletes a record in a DBF file.
* - php4dbf_createDbf: Creates a new DBF file.
* - php4dbf_compareDbfFiles: Compares two DBF files.
* - php4dbf_getRecordByIndex: Retrieves a record by its index.
* - php4dbf_numrecords: Retrieves the number of records in a DBF file.
* - php4dbf_numfields: Retrieves the number of fields in a DBF file.
* - php4dbf_get_record_with_names: Retrieves a record with field names from a DBF file.
* - php4dbf_close: Closes a DBF file.
* - php4dbf_loadAllFile: Loads the entire DBF file into memory.
* - php4dbf_loadAllHeader: Extracts header information from the file content string.
* - php4dbf_readHeader: Reads header information from a file pointer.
* - php4dbf_extractFields: Extracts field descriptions from the loaded DBF file data.
* - php4dbf_readRecordByIndex: Reads a record based on the specified index.
* - php4dbf_closeDbfFile: Closes an open DBF file handle, if present.
* - php4dbf_openFile: Opens a DBF file and loads either the full content or just the header.
* - php4dbf_getLastUpdateDate: Extracts the last update date from the DBF header.
* - php4dbf_flock: Attempts to create a lock and lock file.
* - php4dbf_phpunlock: Releases the lock created by `flock` using PHP.
* - php4dbf_unlock: Releases the custom lock by deleting lock files.
* - php4dbf_updateField: Updates a specific field within a record in a DBF file.
* - php4dbf_updateLastModifiedDate: Updates the last modified date in the DBF header.
* - php4dbf_checkFileSizeConsistency: Checks file size consistency with the number of records.
* - php4dbf_appendBlank: Adds a blank record to a DBF file.
* - php4dbf_getHeader: Helper function for common header processing.
* - php4dbf_DBUse: Opens a DBF file and reads the header as well as the field descriptions.
* - FieldPos: Returns the 1-based position of a field by its name.
* - FieldName: Returns the name of a field by its 1-based position.
* - FieldPosLast: Returns the 1-based position of the last field.
* - php4dbf_dbGoTop: Moves the record pointer to the first valid record.
* - php4dbf_dbGoTo: Moves the record pointer to a specific record.
* - php4dbf_init: Initializes the DBF file for reading.
* - php4dbf_get_next_record: Reads the next record from the DBF file.
* - php4dbf_parse_record: Parses a record from raw binary data into an associative array.
* - php4dbf_convert_value: Converts a raw binary value to the appropriate data type based on field type.
*/