supportkbz/laravel-salesforce

Package CRUD connexion with Salesforce

Maintainers

Package info

github.com/SupportKBZ/laravel-salesforce

Homepage

pkg:composer/supportkbz/laravel-salesforce

Transparency log

Fund package maintenance!

kandbaz

Statistics

Installs: 7

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.4 2026-07-27 13:41 UTC

This package is auto-updated.

Last update: 2026-07-27 13:41:56 UTC


README

Laravel Salesforce

Packagist PHP from Packagist Laravel versions GitHub Workflow Status (main) Total Downloads

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.