exonet / powerdns-php
PowerDNS API PHP Client
Installs: 151 263
Dependents: 0
Suggesters: 0
Security: 0
Stars: 98
Watchers: 13
Forks: 33
Open Issues: 0
Requires
- php: ^7.3|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- psr/log: ^1.0|^2.0|^3.0
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.2.1 || ^0.4.0 || ^0.5.0
- mockery/mockery: ^1.2
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-12-01 00:09:37 UTC
README
powerdns-php
A PHP client to communicate with the PowerDNS API.
Install
Via Composer
$ composer require exonet/powerdns-php
Usage
Basic example how to create a new DNS zone and insert a few DNS records.
use Exonet\Powerdns\Powerdns; use Exonet\Powerdns\RecordType; use Exonet\Powerdns\Resources\ResourceRecord; use Exonet\Powerdns\Resources\Record; // Initialize the Powerdns client. $powerdns = new Powerdns('127.0.0.1', 'powerdns_secret_string'); // Create a new zone. $zone = $powerdns->createZone( 'example.com', ['ns1.example.com.', 'ns2.example.com.'] ); // Add two DNS records to the zone. $zone->create([ ['type' => RecordType::A, 'content' => '127.0.0.1', 'ttl' => 60, 'name' => '@'], ['type' => RecordType::A, 'content' => '127.0.0.1', 'ttl' => 60, 'name' => 'www'], ]); // OR use the Object-based way $zone->create([ (new ResourceRecord())->setType(RecordType::A)->setRecord('127.0.0.1')->setName('@')->setTtl(60), (new ResourceRecord())->setType(RecordType::A)->setRecord((new Record())->setContent('127.0.0.1'))->setName('@')->setTtl(60), ]);
See the examples directory for more.
Change log
Please see releases for more information on what has changed recently.
Testing
Testing against multiple PHP / PowerDNS versions can be done by using the provided docker-compose.yml
and the
run-tests.sh
shell script:
$ docker-compose up -d $ ./run-tests.sh
After running docker-compose up -d
wait a few seconds so PowerDNS can be initialized. You can leave the containers
running and call the test script multiple times.
To test against a specific PHP / PowerDNS combination, you can provide the PHP version as first and the PowerDNS version as second parameter:
$ ./run-tests.sh 7.4 4.3
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email development@exonet.nl instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.