olssonm / loopia-api
Simple interface for the Loopia XMLRPC-API
Requires
- php: ^7.0|^8.0
- lstrojny/fxmlrpc: ^0.20
- php-http/guzzle6-adapter: ^2.0
- php-http/message: ^1.11
- zendframework/zend-diactoros: ^1.3
Requires (Dev)
- phpunit/phpunit: ~8.0|~9.5
This package is auto-updated.
Last update: 2024-10-23 13:39:54 UTC
README
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.
Installation
$ composer require olssonm/loopia-api
Usage
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();
Testing
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.
License
The MIT License (MIT). Please see License File for more information.
© 2021 Marcus Olsson.