omniphx/forrest
Laravel package for authenticating with Salesforce via OAuth and calling the REST, SOAP, and Apex APIs. Provides a clean wrapper around Guzzle with token refresh, query helpers, and configuration for seamless Salesforce integrations in Laravel apps.
forrest.synced, forrest.failed), enabling integration with queues, notifications, or third-party services (e.g., Slack alerts on sync failures).auth:api or custom credentials). Feasibility depends on existing Salesforce org setup (e.g., connected apps, IP restrictions).Mockery) is feasible but may need custom test doubles for complex scenarios.schema:validate command.QUERY_TIMEOUT) requires custom exception handlers or middleware./services/data/vXX.X/sobjects/ may impact latency.auth:refresh)?spatie/fake-salesforce)?Forrest facade or bind it as a singleton for dependency injection.forrest:sync) for async operations to avoid timeouts.SalesforceSynced) to decouple sync logic from business processes.Http::fake()) to mock Salesforce responses.api, refresh_token).Account) to validate CRUD operations.sync command to test data mapping and error handling..env or a secrets manager (e.g., AWS Secrets Manager).Monolog channel) and integrate with APM tools.composer.json for minimum requirements.php-soap for WSDL-based operations (if used), though REST is the primary mode.ContentVersion attachments..env (e.g., SALESFORCE_CLIENT_ID, SALESFORCE_CLIENT_SECRET).php artisan vendor:publish --tag="forrest-migrations").Forrest\Concerns\SyncsWithSalesforce.syncFields() and syncRules() in models.php artisan forrest:sync Accounts).SyncSalesforceJob).omniphx/forrest or Laravel core.php artisan forrest:schema:validate).composer.json to avoid unintended updates.SalesforceService).config/forrest.php) for API responses/errors.telescope or laravel-debugbar to inspect sync jobs.syncRules() to enforce validation (e.g., required fields).forrest:batch for large datasets (e.g., 200 records/batch).Guzzle) for concurrent requests.route:web).spatie/laravel-circuitbreaker) to avoid cascading failures.CompositeRequest).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Salesforce API downtime | Sync jobs fail | Ret |
How can I help you explore Laravel packages today?