GithubHelp home page GithubHelp logo

Comments (1)

trizz avatar trizz commented on June 19, 2024

Hi @tloader11,

I've discussed this issue with our team, but we won't be adding such functionality to the package. There are probably more cases where the buildUrl method doesn't suffice and adding exceptions isn't maintainable.

With that being said, it is possible to create your own connector class with the URL structure you'd like. Just pass it as argument to the Powerdns client constructor to use your own connector class instead of the provided one. The only requirement is that it implements the ConnectorInterface.

To prevent writing all the logic in your own class, I've changed the private methods in the Connector class in the upcoming release to be protected. This way, your own Connector class can be pretty simple by only overwriting the buildUrl method:

class CustomConnector extends Connector
{
    protected function buildUrl(string $path): string
    {
        // Your own logic.
    }
}

And use it like this:

$powerdns = new Powerdns();
$connector = new CustomConnector($powerdns);

// Because the connector needs the Powerdns client instance (because its based on the original connector), the new 'setConnector' method must be used:
$powerdns->setConnector($connector);

// If you don't extend the existing connector, you can pass your own implementation when constructing the client:
$powerdns = new Powerdns(null, null, null, null, new CustomConnector());

Of course, if you're using dependency injection you can use that to load the correct instance of the ConnectorInterface.

from powerdns-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.