developersnl/bullhorn-client-bundle
Pros:
symfony/flex or manual inclusion).bullhorn_client.yaml) simplifies environment-specific setups (e.g., dev/staging/prod).Cons:
auth-emea) may not cover all Bullhorn instances (US, APAC, etc.).guzzlehttp/guzzle (for HTTP requests) and Symfony’s HttpClient (if using Symfony components)./rest-services/v1/).ErrorResponse format).Promise); may block I/O in synchronous Laravel apps.spatie/laravel-ignition for error debugging).BullhornApiException) for granular error handling.spatie/laravel-caching).symfony/flex to include the bundle, then create a Laravel service provider to expose the client as a singleton.// app/Providers/BullhornServiceProvider.php
public function register()
{
$this->app->singleton('bullhorn', function ($app) {
return new \Developersnl\BullhornClientBundle\Client(
$app['config']['bullhorn_client']
);
});
}
use Developersnl\BullhornClientBundle\Client;
$client = new Client([
'authentication' => [
'clientId' => env('BULLHORN_CLIENT_ID'),
// ...
],
'rest' => [
'username' => env('BULLHORN_USERNAME'),
'password' => env('BULLHORN_PASSWORD'),
],
]);
Illuminate\Support\Facades\Http) if possible, or configure Guzzle globally (e.g., via app/Http/Clients/BullhornClient.php).// app/Facades/Bullhorn.php
public static function getCandidate($id) {
return self::client()->get("/candidate/$id");
}
vcr/vcr.php) to test edge cases.HttpClient, ensure version alignment (e.g., symfony/http-client:^5.4).clientId, clientSecret, username, password in .env.config/bullhorn_client.php (Laravel) or config/packages/bullhorn_client.yaml (Symfony).config/app.php (Laravel) or config/bundles.php (Symfony).CandidateService, JobOrderService).Log::debug) and set up alerts for failures.composer.json until stability is proven.README.md or UPGRADE.md).Illuminate\Bus\Queueable).spatie/laravel-queue-retries).redis for frequently accessed data).spatie/laravel-circuit-breaker).stash/laravel).How can I help you explore Laravel packages today?