yabawt / webmarketer-client-php
API Client to send leads to Webmarketer.io
Requires
- php: >=5.3
- ext-curl: *
This package is not auto-updated.
Last update: 2021-10-22 07:05:06 UTC
README
Installation
Composer est recommandé pour installer ce package.
Installation de composer :
curl -sS https://getcomposer.org/installer | php
Lancez ensuite l'installation du package :
php composer.phar require yabawt/webmarketer-client-php
Une fois l'installation, terminée, référencez l'autoloader de composer dans votre/vos fichier(s) :
require vendor/autoload.php
Utilisation
Cette classe permet l'envoi des leads dans l'outil Webmarketer.
Utilisation :
WebmarketerClient::send('YOUR_WEBMARKETER_API_KEY', [
'firstname' => 'Jérémie',
'lastname' => 'MARTIN'
]);
Le tableau de données du lead doit être un tableau associatif où chaque valeur est une string.
Retry
Lorsqu'un envoi de lead échoue, celui-ci est réexecuté jusqu'à qu'il réussisse ou que le nombre de tentative atteigne la limite maximale (3 tentatives par défaut).
Le nombre de tentatives peut être défini en passant un troisième paramètre $tries
à la méthode WebmarketerClient::send
:
// On demande 5 tentatives
WebmarketerClient::send('YOUR_WEBMARKETER_API_KEY', $data, 5);
Si la valeur du paramètre $tries
est inferieur ou égal à 1, une seule tentative sera effectuée.
Exceptions
L'appel de la méthode WebmarketerClient::send
peut lever des exceptions :
- RequirementsException
L'extension CURL n'est pas installée - InvalidParameterException
Un des paramètres est absent, vide ou incorrect - ApiKeyException
La clé d'API est absente ou incorrecte - RemoteException
Une erreur est survenue sur le serveur distant (Webmarketer)
Extensibilité
Certains composants du client sont personnalisables pour s'adapter au contexte dans lequel il est utilisé :
Senders
Le composant "sender" a la responsabilité d'envoyer les données à Webmarketer.
Le sender par défaut \Yabawt\Webmarketer\Senders\CurlSender
s'appuie sur l'extension php-curl.
Si le besoin se présente, il est possible de fournir au client une implémentation personnalisée
de \Yabawt\Webmarketer\Senders\ISender
(basé sur Guzzle par exemple).
Exemple de surcharge du "sender" :
class GuzzleSender implements ISender
{
public function send($host, $api_key, $data)
{
// ...
}
}
WebmarketerClient::setSender(new GuzzleSender());
Loggers
Le composant "logger" a la responsabilité de journaliser les erreurs qui peuvent se produire lors
de l'appel de WebmarkterClient::send()
(Note : Seule la dernière erreur de toutes les tentatives est journalisée)
Exemple de surcharge du "logger" (exemple avec Laravel) :
class LaravelLogger implements ILogger
{
public function log(AbstractException $ex)
{
Log::error($ex->getMessage(), [
'lead_data' => $ex->getLeadData()
]);
}
}
WebmarketerClient::setLogger(new LaravelLogger());
La méthode getLeadData()
, présente pour toutes les exceptions levées par le package,
permet de récupérer les données du lead envoyé.
Attention : le Logger par défaut ne convient pas lorsque le package yabawt/webmarketer-client-php
est récupéré depuis composer.
Cette implémentation, basée sur le filesystem, enregistre le fichier de log dans le repertoire de la classe
"WebmarketerClient" localisé dans le dossier "vendor" (dossier qui a tendance à être "jetable").
Si le besoin se présente et que vous conservez le Logger par défaut, vous pouvez personnaliser le répertoire de la façon suivante :
WebmarketerClient::getLogger()->setPath('/path/to/my/logs/');
(Note cet appel peut n'être réalisé qu'une seule fois pour toute la durée de vie de la classe statique)