skydiablo / react-crate
Requires
- react/http: ^3@dev
Requires (Dev)
- phpunit/phpunit: ^10.1
Suggests
- doctrine/dbal: Required for using the Doctrine DBAL Driver integration with CrateDB.
- react/async: Required for synchronous execution in the Doctrine DBAL Driver.
This package is auto-updated.
Last update: 2025-09-19 11:11:35 UTC
README
React Crate
ist eine PHP-Bibliothek, die eine Schnittstelle zu CrateDB bietet, um IoT-Daten effizient zu speichern und abzurufen. Diese Bibliothek nutzt die ReactPHP-Architektur, um asynchrone Operationen zu unterstützen.
Installation
Um die Bibliothek zu installieren, verwenden Sie Composer:
composer require skydiablo/react-crate
Anforderungen
- PHP 8.3 oder höher
- CrateDB
- ReactPHP
Verwendung
Initialisierung
Um die Bibliothek zu verwenden, müssen Sie zuerst einen Client
erstellen und die IoT
-Serviceklasse initialisieren:
use SkyDiablo\ReactCrate\Client;
use SkyDiablo\ReactCrate\Services\IoT;
$client = new Client('http://localhost:4200');
$iotService = new IoT($client);
Tabelle initialisieren
Bevor Sie Messungen hinzufügen, sollten Sie die Tabelle mit der Funktion initTable
initialisieren. Diese Funktion erstellt die notwendige Tabelle in CrateDB, falls sie noch nicht existiert:
$iotService->initTable()->then(function() {
echo "Tabelle erfolgreich initialisiert.";
});
Messungen hinzufügen
Sie können Messungen hinzufügen, indem Sie die Measurement
-Klasse verwenden:
use SkyDiablo\ReactCrate\DataObject\IoT\Measurement;
$measurement = new Measurement(new \DateTime(), 'temperature', ['location' => 'office'], ['value' => 23.5]);
$iotService->addMeasurement($measurement);
Using the Doctrine DBAL Driver
This library provides a custom Doctrine DBAL driver for CrateDB. To use it:
Requirements
- Doctrine DBAL (^4.0 or compatible version)
Install it via Composer if not already present:
composer require doctrine/dbal
Configuration
Use the following configuration to create a Doctrine DBAL connection:
use Doctrine\DBAL\DriverManager; $connectionParams = [ 'url' => 'crate://localhost:4200/doc', // or specify host, port, etc. 'driverClass' => 'SkyDiablo\\ReactCrate\\Doctrine\\DBAL\\Driver\\CrateDriver', // Additional params if needed, e.g., 'host' => 'localhost', 'port' => 4200 ]; $connection = DriverManager::getConnection($connectionParams); // Now you can use $connection as usual with Doctrine DBAL $connection->executeQuery('SELECT * FROM your_table');
Note: CrateDB uses HTTP for connections, and authentication might not be required. Adjust parameters accordingly.
For more details on Doctrine DBAL configuration, refer to the Doctrine DBAL documentation.