rob-lester-jr04/eloquent-sales-force
Pros:
where, with, has, etc.) for Salesforce data, reducing cognitive load.create, update, delete, sync).retrieved, saved, deleted), enabling hooks for pre/post-processing (e.g., logging, validation, or workflow triggers).belongsTo, hasMany, etc., for Salesforce parent-child relationships (e.g., Account ↔ Contact), though limited by Salesforce’s object model.sync or upsert, critical for performance with large datasets.Cons:
Lookup fields) or custom metadata (e.g., field-level security, sharing rules). May require manual overrides.guzzlehttp/guzzle (for HTTP) and laravel/framework (for Eloquent). Minimal additional overhead.salesforce/enterprise-php-toolkit or custom config). Requires consumer_key, consumer_secret, and access_token management.Account, Opportunity). Custom objects require manual model setup.read/write permissions (e.g., due to FLS or sharing rules). Needs error handling.partner.wsdl). Package may lag in updates.INVALID_FIELD vs. INSUFFICIENT_ACCESS). Package lacks granular error mapping (e.g., SalesforceValidationException).sync) could hit governor limits. No built-in retry logic for throttling.Mockery or Vcr).ElSF models (e.g., App\Models\Salesforce\Account extending ElSF\Model).config('services.salesforce')) and HTTP client to the container.saved) to trigger workflows (e.g., Slack notifications, audit logs).sync method dispatched to salesforce-bulk-job queue).salesforce/enterprise-php-toolkit or Laravel’s HTTP client with OAuth middleware.spatie/laravel-salesforce-bulk).composer require salesforce/enterprise-php-toolkit for schema management.accounts with salesforce_id foreign key).Account::find($id)) with Laravel’s cache driver.config/salesforce.php, and test basic CRUD (e.g., Account model).telescope to monitor API calls and laravel-debugbar for query insights.ElSF models (e.g., Contact, Opportunity).Account::sync() with chunking).account.created → trigger webhook).sync with queued jobs for large datasets.Account::where('name', ...)).monolog channel).validateFieldPermissions()).testAccountSync with mocked API responses).metachristian/laravel-salesforce) to prevent config collisions.guzzlehttp/guzzle or illuminate/database.php artisan make:elsf-model CustomObject).api, refresh_token).How can I help you explore Laravel packages today?