supportkbz / laravel-salesforce
Package CRUD connexion with Salesforce
Fund package maintenance!
1.0.4
2026-07-27 13:41 UTC
Requires
- php: ^8.3
- illuminate/cache: ^12.0||^13.0
- illuminate/console: ^12.0||^13.0
- illuminate/contracts: ^12.0||^13.0
- illuminate/encryption: ^12.0||^13.0
- illuminate/http: ^12.0||^13.0
- illuminate/support: ^12.0||^13.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pao: ^1.0
- laravel/pint: ^1.29
- orchestra/testbench: ^10.0||^11.0
- pestphp/pest: ^4.6
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-type-coverage: ^4.0
- phpstan/extension-installer: ^1.4
README
Laravel Salesforce
Package CRUD pour interagir avec Salesforce via des classes sObject Eloquent-like.
Installation
composer require supportkbz/laravel-salesforce
Publie la configuration :
php artisan vendor:publish --tag="laravel-salesforce-config"
Renseigne les variables d'environnement :
SF_URL=https://your-instance.salesforce.com SF_CONSUMER_KEY= SF_CONSUMER_SECRET= SF_USERNAME= SF_PASSWORD= SF_VERSION=v59.0 SF_OWNER_ID= # Cache du token OAuth : `default` (Cache Laravel / CACHE_DRIVER) ou `file` SF_CACHE_DRIVER=default # SF_CACHE_PATH= # mode file uniquement # SF_CACHE_KEY= # mode default uniquement
Cache du token
| Driver | Comportement |
|---|---|
default |
Utilise Cache::get/put/forget avec le CACHE_DRIVER de l'app |
file |
Persiste un fichier chiffre via file_put_contents (+ Crypt) |
Usage
Creer une classe sObject
php artisan make:sobject Lead
# ou avec un nom d'API custom :
php artisan make:sobject Address --table=Adresse__c
Exemple genere / manuel :
namespace App\Salesforce; use SupportKBZ\SObject\SObject; class Lead extends SObject { protected string $table = 'Lead'; protected array $fillable = [ 'Id', 'Email', 'FirstName', 'LastName', ]; protected array $map = [ 'Id' => 'id', 'Email' => 'email', 'FirstName' => 'first_name', 'LastName' => 'last_name', ]; }
Requetes
$lead = (new Lead)->find('00Q...'); $lead = (new Lead)->find('email', 'john@example.com'); $lead = (new Lead)->where('Status', 'Open')->first(); $leads = (new Lead) ->where(function ($q) { $q->where('Status', 'Open')->orWhere('Status', 'Pending'); }) ->whereIn('LeadSource', ['Web', 'Partner']) ->get();
Ecriture
$lead = new Lead; $lead->email = 'john@example.com'; $lead->first_name = 'John'; $lead->last_name = 'Doe'; $lead->save(); $lead->status = 'Qualified'; $lead->save(); (new Lead)->insert(['Email' => 'jane@example.com', 'LastName' => 'Doe']); (new Lead)->update('00Q...', ['Status' => 'Closed']);
Les cles acceptees par insert / update / les setters peuvent etre des noms Salesforce (Email) ou des noms mappes (email).
Upload / download
Le trait UploadsAndDownloads est inclus sur SObject :
(new Lead)->upload('/path/to/file.pdf', $linkedEntityId); (new Lead)->download($contentVersionId, storage_path('app/sf_file'));
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Thank you for considering contributing to Laravel Salesforce! Please review our contributing guide to get started.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
Laravel Salesforce is open-sourced software licensed under the MIT license.