saeedvir / supabase
A Laravel package for integrating with Supabase services
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/saeedvir/supabase
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^11.0|^12.0
README
A comprehensive Laravel package for integrating with Supabase services including Auth, Database, Storage, and Realtime.
Installation
You can install the package via composer:
composer require saeedvir/supabase
Configuration
Publish the configuration file:
php artisan vendor:publish --provider="Saeedvir\Supabase\SupabaseServiceProvider" --tag="supabase-config"
Add your Supabase credentials to your .env file:
SUPABASE_URL=https://your-project.supabase.co SUPABASE_KEY=your-supabase-public-key SUPABASE_SECRET=your-supabase-secret-key
Get URL & KEY
- go to supabase Dashboard
- select your project
- go to "Project Settings"
- go to "Data API"
- copy "Project URL" as "SUPABASE_URL"
- go to "API KEY"
- copy "service_role" secret key as "SUPABASE_KEY"
- then
php artisan config:clear
Usage
Using the Facade
use Saeedvir\Supabase\Facades\Supabase; // Database operations $users = Supabase::db()->select('users', '*', ['active' => true]); // Auth operations $result = Supabase::auth()->signIn('user@example.com', 'password'); // Storage operations $result = Supabase::storage()->upload('avatars', 'user-avatar.png', '/path/to/local/file.png'); // Realtime operations $url = Supabase::realtime()->channelUrl('public', 'users');
Using the Service Directly
use Saeedvir\Supabase\Services\SupabaseService; $supabase = new SupabaseService(); // Database operations $users = $supabase->db->select('users', '*', ['active' => true]); // Auth operations $result = $supabase->auth->signIn('user@example.com', 'password');
Features
Auth Service
- User signup and signin
- Password reset
- User management
- Session management
Database Service
- Select, insert, update, delete operations
- Filtering and ordering
- RPC function calls
Storage Service
- File upload and download
- File management (move, copy, delete)
- Signed URLs for private files
- Public and authenticated URLs
Realtime Service
- WebSocket channel URLs
- Client connection helpers
- JavaScript snippets for frontend integration
Configuration Options
You can customize the package behavior by modifying the config/supabase.php file:
- Enable/disable specific services
- Configure HTTP client settings (timeout, retries)
- Set API keys and secrets
Requirements
- PHP ^8.0
- Laravel ^11.0|^12.0
- GuzzleHTTP ^7.0
License
The MIT License (MIT). Please see License File for more information.
