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
Requires
- guzzlehttp/guzzle: ^7.8
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.