xlited / laravel-d1
Laravel 集成 Cloudflare D1。
1.0.0
2024-08-07 13:21 UTC
Requires
- doctrine/dbal: ^3.6
- illuminate/cache: ^10.23|^11.0
- illuminate/database: ^10.23|^11.0
- saloonphp/laravel-http-sender: ^1.2|^2.0|^3.0
- saloonphp/laravel-plugin: ^2.1|^3.0
Requires (Dev)
- laravel/legacy-factories: ^1.3
- mockery/mockery: ^1.5
- orchestra/testbench: ^8.3
- phpunit/phpunit: ^9.5.21
Suggests
- ext-pdo: Required to extend the PDO driver for Cloudflare D1.
README
通过 Cloudflare D1 绑定扩展您的 PHP/Laravel 应用程序。
🚀 安装
您可以通过 Composer 安装此包
composer require xlited/laravel-d1
🙌 使用方法
使用原始 PDO 的 D1
尽管 D1 不能通过 SQL 协议连接,但它可以通过包连接器作为 PDO 驱动使用。这会将查询和绑定代理到 Cloudflare API 中的 D1 的 /query
端点。
use XliteDev\LaravelD1\D1\D1Pdo; use XliteDev\LaravelD1\D1\D1PdoStatement; use XliteDev\LaravelD1\CloudflareD1Connector; $pdo = new D1Pdo( dsn: 'sqlite::memory:', // irrelevant connector: new CloudflareD1Connector( database: 'your_database_id', token: 'your_api_token', accountId: 'your_cf_account_id', ), );
使用 Laravel 的 D1
在您的 config/database.php
文件中,添加一个新的连接
'connections' => [ 'd1' => [ 'driver' => 'd1', 'prefix' => '', 'database' => env('CLOUDFLARE_D1_DATABASE_ID', ''), 'api' => 'https://api.cloudflare.com/client/v4', 'auth' => [ 'token' => env('CLOUDFLARE_TOKEN', ''), 'account_id' => env('CLOUDFLARE_ACCOUNT_ID', ''), ], ], ]
然后在您的 .env
文件中,设置您的 Cloudflare 凭据
CLOUDFLARE_TOKEN=
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_D1_DATABASE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
d1
驱动程序将代理 PDO 查询到 Cloudflare D1 API 以运行查询。
🐛 测试
启动内置的 Worker,模拟 Cloudflare API
cd tests/worker
npm ci
npm run start
在另一个终端中运行测试
vendor/bin/phpunit
🤝 贡献
有关详细信息,请参阅 CONTRIBUTING
🔒 安全性
如果您发现任何与安全性相关的问题,请通过电子邮件 alex@renoki.org 而不是使用问题跟踪器。