yabawt/webmarketer-client-php

API Client to send leads to Webmarketer.io

v0.0.2 2018-04-24 09:51 UTC

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)