SDK PHP et Laravel
Le package Composer expose des modèles typés et une classe par groupe d’opérations. Il fonctionne dans Laravel comme dans une application PHP sans framework.
Installation
composer require lalternative/sporeLe SDK requiert PHP 8.1 ou plus récent et utilise Guzzle pour les appels HTTP.
Configuration PHP
use GuzzleHttp\Client;
use Lalternative\Spore\Api\MessagingApi;
use Lalternative\Spore\Configuration;
$configuration = Configuration::getDefaultConfiguration()
->setApiKey('Authorization', $_ENV['SPORE_API_KEY'])
->setApiKeyPrefix('Authorization', 'Bearer');
$spore = new MessagingApi(new Client(), $configuration);Intégration Laravel
Déclarez la clé dans .env, puis exposez le client comme singleton dans un
service provider. Votre code métier dépend alors de MessagingApi, sans
reconstruire la configuration à chaque envoi.
// config/services.php
'spore' => ['key' => env('SPORE_API_KEY')],
// app/Providers/AppServiceProvider.php
$this->app->singleton(MessagingApi::class, function () {
$configuration = Configuration::getDefaultConfiguration()
->setApiKey('Authorization', config('services.spore.key'))
->setApiKeyPrefix('Authorization', 'Bearer');
return new MessagingApi(new Client(), $configuration);
});Envoyer un email
use Illuminate\Support\Str;
use Lalternative\Spore\Model\SendEmailSendEmailRequest;
$message = new SendEmailSendEmailRequest([
'from' => 'hello@votredomaine.fr',
'to' => ['alex@example.com'],
'subject' => 'Bienvenue',
'html' => '<p>Votre compte est prêt.</p>',
]);
$result = $spore->sendEmail($message, (string) Str::uuid());Le second argument devient l’en-tête Idempotency-Key. Utilisez une valeur
stable par action métier, notamment dans un job Laravel susceptible d’être
retenté.
Gérer les erreurs
use Lalternative\Spore\ApiException;
try {
$result = $spore->sendEmail($message, $jobId);
} catch (ApiException $error) {
report($error);
}