darkterminal / turso-client-http
Turso Client HTTP库是Turso HTTP数据库API的PHP包装器
v2.9.2
2024-08-30 06:32 UTC
Requires
- php: >=8.1
- monolog/monolog: ^3.7
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- pestphp/pest: ^2.34
README
TursoHTTP
库是Turso HTTP数据库API(仅)的PHP包装器。它通过HTTP协议简化了与Turso数据库的交互。此库提供面向对象的编程方法来构建和执行与PHP原生扩展Turso Client PHP相同的API接口。
要求
特性
- libSQL原生扩展 API接口
- 模式构建器
- 查询构建器
- Turso平台API
- 时区支持
安装
您可以使用Composer安装
composer require darkterminal/turso-client-http
环境变量
使用示例
use Darkterminal\TursoHttp\LibSQL; require_once 'vendor/autoload.php'; $dbname = getenv('DB_URL'); $authToken = getenv('DB_TOKEN'); $db = new LibSQL("dbname=$dbname&authToken=$authToken"); echo $db->version() . PHP_EOL; $create_table = <<<SQL CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT ) SQL; $db->execute($create_table);
LibSQL模式构建器
<?php use Darkterminal\TursoHttp\core\Enums\DataType; use Darkterminal\TursoHttp\LibSQL; use Darkterminal\TursoHttp\core\Builder\LibSQLBlueprint; use Darkterminal\TursoHttp\core\Builder\LibSQLSchemaBuilder; require_once 'vendor/autoload.php'; try { $dbname = getenv('DB_URL'); $authToken = getenv('DB_TOKEN'); $db = new LibSQL("dbname=$dbname&authToken=$authToken"); $schemaBuilder = new LibSQLSchemaBuilder($db); // Creating table $schemaBuilder->create('contacts', function(LibSQLBlueprint $table) { $table->increments('id'); $table->string('name'); $table->unique('email'); $table->string('phone'); $table->timestamps(); })->execute(); echo "Table created successfully.\n"; // Add new column in the table $schemaBuilder->table('contacts', function(LibSQLBlueprint $table) { $table->addColumn(DataType::TEXT, 'address'); })->execute(); echo "Column added successfully.\n"; // Drop the table $schemaBuilder->drop('contacts')->execute(); echo "Table contacts successfully dropped!.\n"; } catch (Exception $e) { echo "An error occurred: " . $e->getMessage(); }
原始查询
<?php use Darkterminal\TursoHttp\LibSQL; require_once getcwd() . '/vendor/autoload.php'; $dbname = getenv('DB_URL'); $authToken = getenv('DB_TOKEN'); $db = new LibSQL("dbname=$dbname;authToken=$authToken"); $query = <<<SQL INSERT INTO contacts (name, email, phone, address) VALUES (?, ?, ?, ?) SQL; $db->execute($query, [ 'Imam Ali Mustofa', 'darkterminal@duck.com', '08123456789', 'Punk Univers' ]);
查询构建器
<?php use Darkterminal\TursoHttp\LibSQL; use Darkterminal\TursoHttp\core\Builder\LibSQLQueryBuilder; require_once getcwd() . '/vendor/autoload.php'; $dbname = getenv('DB_URL'); $authToken = getenv('DB_TOKEN'); $db = new LibSQL("dbname=$dbname;authToken=$authToken"); $sql = new LibSQLQueryBuilder($db); $contacts = $sql->table('contacts') ->where('address', '=', 'Punk Universe') ->get(); var_dump($contacts);
许可证
此库采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。