darkterminal / turso-http-laravel
A Turso HTTP SDK for Laravel
Fund package maintenance!
darkterminal
saweria.co/darkterminal
Requires
- php: ^8.2
- darkterminal/turso-client-http: ^2.9
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.1
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
Turso + Laravel
SQLite for Production. Powered by libSQL.
Turso · Quickstart · Examples · Docs · Discord · Blog & Tutorials
A LibSQL HTTP for Laravel
Requirement
- Turso CLI - Installation
- Turso Account - Register Here
Installation
You can install the package via composer:
composer require darkterminal/turso-http-laravel
Then register the service provider at bootstrap/providers.php
array:
return [ App\Providers\AppServiceProvider::class, Turso\Http\Laravel\LibSQLHttpServiceProvider::class, // Here ];
Database Configuration
DB_CONNECTION=libsql DB_DATABASE=<your-turso-database-url> DB_AUTH_TOKEN=<your-turso-database-auth-token>
Database Configuration
Add this configuration at config/database.php
inside the connections
array:
'libsql' => [ 'driver' => 'libsql', 'url' => env('DB_DATABASE', ''), 'authToken' => env('DB_AUTH_TOKEN', ''), 'database' => null, 'prefix' => '', ],
Copy and Paste and do not change it! Or try to change it and will broke your app or give you malfunction.
Usage
For database operation usage, everything have same interface like usual when you using Illuminate\Support\Facades\DB
in your database model. But remember, this is LibSQL they have sync
method that can be used when you connect with Remote Replica Connection (Embedded Replica).
use Illuminate\Support\Facades\DB; // Create DB::table('users')->insert([ 'name' => 'Budi Dalton', 'email' => 'budi.dalton@duck.com' ]); // Read DB::table('users')->get(); DB::table('users')->where('id', 2)->first(); DB::table('users')->orderBy('id', 'DESC')->limit(2)->get(); // Update DB::table('users')->where('id', 2)->update(['name' => 'Doni Mandala']); // Delete DB::table('users')->where('id', 2)->delete(); // Transaction try { DB::beginTransaction(); $updated = DB::table('users')->where('id', 9)->update(['name' => 'Doni Kumala']); if ($updated) { echo "It's updated"; DB::commit(); } else { echo "Not updated"; DB::rollBack(); } $data = DB::table('users')->orderBy('id', 'DESC')->limit(2)->get(); dump($data); } catch (\Exception $e) { DB::rollBack(); echo "An error occurred: " . $e->getMessage(); }
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.