Laravel integration for Cloudflare Workers services.

Fund package maintenance!


CI codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

Extend your PHP/Laravel application with Cloudflare bindings.

This package offers support for:

🚀 Installation

You can install the package via Composer:

composer require renoki-co/l1

🙌 Usage

D1 with raw PDO

Though D1 is not connectable via SQL protocols, it can be used as a PDO driver via the package connector. This proxies the query and bindings to the D1's /query endpoint in the Cloudflare API.

use RenokiCo\L1\D1\D1Pdo;
use RenokiCo\L1\D1\D1PdoStatement;
use RenokiCo\L1\CloudflareD1Connector;

$pdo = new D1Pdo(
    dsn: 'sqlite::memory:', // irrelevant
    connector: new CloudflareD1Connector(
        database: 'your_database_id',
        token: 'your_api_token',
        accountId: 'your_cf_account_id',

D1 with Laravel

In your config/database.php file, add a new connection:

'connections' => [
    'd1' => [
        'driver' => 'd1',
        'prefix' => '',
        'database' => env('CLOUDFLARE_D1_DATABASE_ID', ''),
        'api' => '',
        'auth' => [
            'token' => env('CLOUDFLARE_TOKEN', ''),
            'account_id' => env('CLOUDFLARE_ACCOUNT_ID', ''),

Then in your .env file, set up your Cloudflare credentials:


The d1 driver will proxy the PDO queries to the Cloudflare D1 API to run queries.

🐛 Testing

Start the built-in Worker that simulates the Cloudflare API:

cd tests/worker
npm ci
npm run start

In a separate terminal, run the tests:


🤝 Contributing

Please see CONTRIBUTING for details.

🔒 Security

If you discover any security related issues, please email instead of using the issue tracker.

🎉 Credits