adnanhussainturki/listmonk-php

Package aims to ease up the API calls to a listmonk API from PHP based application

0.1 2023-11-12 00:45 UTC

This package is auto-updated.

Last update: 2025-03-12 23:47:16 UTC


README

The package allows easy access to ListMonk API from PHP based applications.

Installation

You can install this library to your project via composer using the following command:

composer require adnanhussainturki/listmonk-php

Usage

<?php

require __DIR__ . 'vendor/autoload.php';

// Create a new ListMonk instance
$listMonk = new \AdnanHussainTurki\ListMonk\ListMonk(
    "http://localhost:9000", // Server URL
    "listmonk", // Username
    "listmonk", // Password
);

?>

Managing lists

    
// Get all lists
$lists = $listMonk->lists()->getAll();
echo "All lists:\n";
foreach ($lists as $list) {
    echo $list->getId() . " - " . $list->getName() . "\n";
}

// Get a list by id
$list = $listMonk->lists()->get(3);
echo "List with id 3:\n";
echo $list->getId() . " - " . $list->getName() . "\n";

// Create a new list
$newList = new \AdnanHussainTurki\ListMonk\Models\MonkList();
$newList->setName("Test List");
$newList->setType("private");
$newList->setOptin("single");
$newList->setTags(["test", "list"]);
$newListMonk = $listMonk->lists()->create($newList);
echo "New list created:\n";
echo $newListMonk->getId(). " - " . $newListMonk->getName() . "\n";


// Update the created list
$newListMonk->setName("Test List Updated");
$newListMonk->setType("public");
$newListMonk->setOptin("double");
$newListMonk->setTags(["test", "list", "updated"]);
$updatedList = $listMonk->lists()->update($newListMonk);
echo "Updated list:\n";
echo $updatedList->getId(). " - " . $updatedList->getName() . "\n";


// Delete the created list
$deletedList = $listMonk->lists()->delete($updatedList->getId());
echo "List deleted:\n";
echo $deletedList->getId(). " - " . $deletedList->getName() . "\n";

Managing subscribers

<?php

require_once __DIR__ . '/init.php';

// Get all subscribers
$subscribers = $listMonk->subscribers()->getAll();
echo "All subscribers:\n";
foreach ($subscribers as $subscriber) {
    echo $subscriber->getId() . " - " . $subscriber->getName() . "\n";
}

// Get a subscriber by id
$subscriber = $listMonk->subscribers()->get(5);
echo "Subscriber with id 1:\n";
echo $subscriber->getId() . " - " . $subscriber->getName() . "\n";

// Create a new subscriber
$newSubscriber = new \AdnanHussainTurki\ListMonk\Models\MonkSubscriber();
$newSubscriber->setName("Test Subscriber");
$newSubscriber->setEmail(random_int(23, 1000). "@gmail.com");
$newSubscriber->setStatus("enabled");
$newSubscriber->setLists([1, 2]);

$newSubscriberMonk = $listMonk->subscribers()->create($newSubscriber);
echo "New subscriber created:\n";
echo $newSubscriberMonk->getId(). " - " . $newSubscriberMonk->getName() . "\n";

// Update the created subscriber
$newSubscriberMonk->setName("Test Subscriber Updated");
$newSubscriberMonk->setEmail(random_int(23, 1000). "@email.com");
$newSubscriberMonk->setStatus("disabled");
$newSubscriberMonk->setLists([1, 2, 3]);
$updatedSubscriber = $listMonk->subscribers()->update($newSubscriberMonk);
echo "Updated subscriber:\n";
echo $updatedSubscriber->getId(). " - " . $updatedSubscriber->getName() . "\n";

// Delete the created subscriber
$deletedSubscriber = $listMonk->subscribers()->delete($updatedSubscriber->getId());
echo "Subscriber deleted:\n";
echo $deletedSubscriber->getId(). " - " . $deletedSubscriber->getName() . "\n";
 

Whats more to be done?

  • All routes of Subscriber is not yet handled.
  • Campaign needs to be implemented.
  • Media needs to be implemented.
  • Import needs to be implemented.
  • Template needs to be implemented.
  • Transactional needs to be implemented.

Buy me a coffee

How to contribute

  • Create a fork, make changes and send a pull request.
  • Raise a issue

License

Licensed under Apache 2.0. You can check its details here.