xlited/laravel-d1

Laravel 集成 Cloudflare D1。

1.0.0 2024-08-07 13:21 UTC

This package is auto-updated.

Last update: 2024-09-07 13:42:10 UTC


README

CI codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

通过 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 而不是使用问题跟踪器。

🎉 致谢