A super simple wrapper for the Loopia XML RPC-API for PHP.
Relies on lstrojny/fxmlrpc to make fast and efficient calls to the API. Requires PHP ^7.2 or PHP ^8.0.
$ composer require olssonm/loopia-api
Using the package is straight forward – just include the client, create an instance and make your calls.
All methods are listed over at the Loopia API-documentation.
Get all your domains
use Olssonm\LoopiaApi\Client;
$response = (new Client('username', 'password'))
->getDomains()
->getResponse();
If needed, you may of course separate your code, like so:
use Olssonm\LoopiaApi\Client;
$client = new Client('username', 'password');
$client->getDomains();
$response = $client->getResponse();
Check the zone records for a domain (with subdomain)
use Olssonm\LoopiaApi\Client;
$response = (new Client('username', 'password'))
->getZoneRecords('example.com', '@')
->getResponse();
Update your DNS (name)-servers
use Olssonm\LoopiaApi\Client;
$response = (new Client('username', 'password'))
->updateDNSServers('example.com', ['ns1.loopia.se', 'ns2.loopia.se'])
->getResponse();
Update your zone records
use Olssonm\LoopiaApi\Client;
$response = (new Client('username', 'password'))
->updateZoneRecord('example.com', '@', [
'type' => 'A',
'ttl' => '3600',
'priority' => 10,
'rdata' => '74.125.0.0',
'record_id' => 0
])
->getResponse();
Copy /tests/boot.example.php
to /tests/boot.php
and edit your settings. Then run:
vendor/bin/phpunit --bootstrap ./tests/boot.php ./tests/LoopiaApiTests.php
Of course the domain under testing needs to be owned by your Loopia account. Note: The last test (test_update_name_servers
) actually modifies your name servers, use with caution.
The MIT License (MIT). Please see License File for more information.
© 2021 Marcus Olsson.