Powerdns php
PowerDNS API PHP Client
[![Latest Version on Packagist][ico-version]][link-packagist] [ [![Build Status][ico-travis]][link-travis] [![Total Downloads][ico-downloads]][link-downloads] The project is written primarily in PHP, distributed under the MIT License license, first published in 2019. Key topics include: dns, pdns, php, php-library, powerdns.
powerdns-php
A PHP client to communicate with the PowerDNS API.
Install
Via Composer
bash$ composer require exonet/powerdns-php
Usage
Basic example how to create a new DNS zone and insert a few DNS records.
phpuse 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:
bash$ 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:
bash$ ./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.
Contributors
Showing top 12 contributors by commit count.
