An Object-Oriented client to consume the Laposta API.
composer require dmt-software/laposta-api
After installing this package you need to configure it. The quickest way to do this is simply add a config file and
use it to load the config into a Config
instance.
// file: config.php
return [
'apiKey' => 'JdMtbsMq2jqJdQZD9AHC',
'customFieldsClasses' => [],
'httpClient' => \GuzzleHttp\Client::class,
'requestFactory' => \GuzzleHttp\Psr7\HttpFactory::class,
];
The next step is to generate an entity for the custom fields for the mailing list(s).
vendor/bin/laposta generate:list-fields config.php -l BaImMu3JZA
More in depth information about the custom fields can be found in the subscribers documentation.
The easiest way to create a client instance is using the factories in this package. These factories can also be used (as guideline) in a dependency injection container.
use DMT\Laposta\Api\Clients\Subscribers;
use DMT\Laposta\Api\Config;
use DMT\Laposta\Api\Factories\CommandBusFactory;
$commandBus = CommandBusFactory::create(Config::load('config.php'));
$client = new Subscribers($commandBus);
use DMT\CommandBus\Validator\ValidationException;
use DMT\Laposta\Api\Entity\BaseCustomFields;
use DMT\Laposta\Api\Entity\Subscriber;
use DMT\Laposta\Api\Clients\Subscribers;
use Psr\Http\Client\ClientExceptionInterface;
try {
/** @var BaseCustomFields $customFields The generated entity for your list */
$subscriber = new Subscriber();
$subscriber->listId = 'BaImMu3JZA';
$subscriber->email = 'user@example.com';
$subscriber->customFields = $customFields;
$subscriber->customFields->name = 'John Do';
/** @var Subscribers $client */
$client->create($subscriber, Subscribers::OPTION_SUPPRESS_EMAIL_NOTIFICATION);
} catch (ValidationException $exception) {
// input was wrong
} catch (ClientExceptionInterface $exception) {
// error response
}
More on how to use this package can be found in the client documentation.