darkterminal / libsql-doctrine-dbal
0.0.3
2024-06-02 14:48 UTC
Requires
- php: >=8.1
- doctrine/dbal: ^4.0
README
此存储库已停止维护,并已移动到
官方 Turso 数据库 存储库下的 Turso Doctrine DBAL 名称。
Turso + Doctrine DBAL
生产级 SQLite。由 libSQL 和 libSQL 扩展 为 PHP 提供。
Turso · 快速入门 · 示例 · 文档 · Discord · 博客 & 教程
Doctrine DBAL 的 LibSQL 驱动
LibSQL 是 SQLite 的分支,此软件包是 LibSQL 驱动 #1,它使用 LibSQL 本地扩展/驱动/任何东西原生运行,并支持 Doctrine DBAL。
需求
在使用此软件包之前,您需要安装和配置 PHP 的 LibSQL 本地扩展。您可以从 LibSQL 扩展 - 发布 下载。
- 📦 解压缩存档
- 🗃 在您的计算机中找到合适的位置
- 💽 复制指向该扩展/驱动的相对路径
- 📂 打开
php.ini
,搜索;extension
(如果您使用 nano,请按 ctrl+w 然后搜索它) - 📝 在下一行添加
extension=liblibsql_php.so
(在 Linux 中)并在开头不要加;
软件包安装
composer require darkterminal/libsql-doctrine-dbal
配置
LibSQL 有 4 种与数据库交互的连接类型:内存连接、本地连接、远程连接和远程副本连接(嵌入式副本)。
内存连接
$params = [ "url" => ":memory:", 'driverClass' => \Darkterminal\LibSQL\DBAL\Driver::class, ];
本地连接
$params = [ "url" => "database.db", 'driverClass' => \Darkterminal\LibSQL\DBAL\Driver::class, ];
如果您想创建远程连接或远程副本(嵌入式副本)连接,您需要一个现有的数据库才能继续。如果您没有,请 创建一个。
获取数据库 URL
turso db show --url <database-name>
获取数据库身份验证令牌
turso db tokens create <database-name>
如果您使用 .env
文件,请将凭据分配给 .env
内部的环境变量。
TURSO_DATABASE_URL= TURSO_AUTH_TOKEN=
远程连接
$params = [ "auth_token" => "<your-database-auth-token-from-turso>", "sync_url" => "<your-database-url-from-turso>", 'driverClass' => \Darkterminal\LibSQL\DBAL\Driver::class, ];
远程副本(嵌入式副本)连接
$params = [ "url" => "database.db", "auth_token" => "<your-database-auth-token-from-turso>", "sync_url" => "<your-database-url-from-turso>", "sync_interval" => 5, // Optional, default is: 5 in seconds "read_your_writes" => true, // Optional, default is: true "encryption_key" => "", // Optional, default is: empty 'driverClass' => \Darkterminal\LibSQL\DBAL\Driver::class, ];
用法
use Doctrine\DBAL\DriverManager; require_once __DIR__ . '/vendor/autoload.php'; $params = [ "url" => ":memory:", 'driverClass' => \Darkterminal\LibSQL\DBAL\Driver::class, ]; $db = DriverManager::getConnection($params); $createTable = "CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER )"; $db->executeStatement($createTable); $insertUsers = <<<SQL INSERT INTO users (name, age) VALUES ('Budi Dalton', 49); INSERT INTO users (name, age) VALUES ('Sujiwo Tedjo', 50); SQL; $db->getNativeConnection()->executeBatch($insertUsers); $result = $db->executeQuery("SELECT * FROM users")->fetchAllAssociative(); var_dump($result); $db->close();
文档
- Turso 快速入门 — 学习如何创建和连接您的第一个数据库。
- SDK 快速入门 — 学习如何使用 libSQL 客户端安装和执行查询。
- SDK 参考 — 深入了解 libSQL SDK 参考和示例。
什么是 Turso?
Turso 是基于 libSQL 的 SQLite 兼容数据库,libSQL 是 SQLite 的开源贡献分支。它支持每个组织扩展到数百万个数据库,并支持将副本复制到任何位置,包括您自己的服务器,以实现微秒级延迟的访问。
了解更多关于 Turso 可以做什么