[Pdns-users] PHP API - $500 Sponsorship Offered
Nicholas Williams
nicholas at nicholaswilliams.net
Tue Sep 1 04:40:33 UTC 2009
I've been considering tackling this for some time but my major problem
is that I only have production servers and don't have a good dev server
for testing stuff. Your $500 peaks my interest more because I could get
that testing server and put it to good use testing this and some
PHP/Pear projects I'm starting to work on, among other things.
I think one of the most important necessities in a project like this is
it needs to be very configurable and (like you said) extensible.
Organizations could use this in many different ways: as a standalone
application, plugged into their community/corporate website, or part of
a third-party application. It needs to be capable of all of these things
while not actually worrying about the implementation of these things. It
should, as you said, come out of the box able to support the MySQL and
PGSQL backends, but it shouldn't be limited to those nor even limited to
SQL-based backends. It should be extensible for any backend.
It's conceivable (possibly desirable) that this could eventually become
a PEAR extension, but I think that detail should be left for a later time.
I've personally written custom PDNS/MySQL PHP management interfaces for
three different organizations, so I'm very familiar with what it
entails. I do hereby "sign up," so to speak.
Here's a general idea of what I believe should be the goals of this
project. I'm open to suggestions for additions to and improvements to
this list. Remember don't get too detailed about implementation just
yet, and our goal isn't to support everything out the door ... it's to
build a basic framework that's extensible and initially supports MySQL
and PGSQL. The names of interfaces/classes aren't final and may change
because of or regardless of suggestions.
- It should be OpenSource (I'm to suggestions as to which license it
falls under) and available on one of the major project sites (I'm
partial to SourceForge and Google Code)
- It should have a PDNSManager interface specifying the basic CRUD
operations for supermasters, records, domains, etc.
- It should have a PDNSMySQL class implementing PDNSManager for the
MySQL backend using the mysqli or possibly http://pear.php.net/package/MDB2
- It should have a PDNSPostgreSQL class implementing PDNSManager for the
PGSql backend using PHP/PG or possibly http://pear.php.net/package/MDB2
- It should have a PDNSFactory class that provides you with the correct
PDNSManager for the type you select, and this factory should provide
methods for specifying configuration options (DB connection details,
location of host files, etc).
- It's possible there should be classes for domains, records and
supermasters to simplify the code of the PDNSManagers. Now that I think
about it some more, I think this might be essential.
- It should make use of exceptions (I prefer extensions of
PEARException, personally) for error reporting
- Additionally, there could also be (and I think there probably should
be) an optional, bundled GUI that implements this API for those
organizations not wanting to code a GUI and just wanting to drop
something in place, configure it, and use it.
Ideas? Suggestions? Comments? Wishes of good luck? :)
Nick
DORDAL wrote:
> So we've had a lot of discussion over the last few months about getting an
> object oriented PHP API for the PDNS database. I kicked it off back in Feb:
> http://mailman.powerdns.com/pipermail/pdns-users/2009-February/thread.html#5935
> and then Pascal chimed in again in June:
> http://mailman.powerdns.com/pipermail/pdns-users/2009-June/thread.html#6080
>
> I keep thinking I'm going to write one, but I don't have the time. So
> instead, I wanted to throw out the idea of sponsoring one... I'd be willing
> to kick in $500 for somebody to write a 'complete' PHP API and
> maintain/bugfix it for at least a year.
>
> What is a 'complete' API? I'd leave that up to the list + anyone else who
> wants to contribute, but I'd suggest at least:
> - object oriented, extendable design
> - ability to work with at least the MySQL and PGSQL backends
> - CRUD operations for any type of record, domains & supermasters
> - Decent test coverage (using PHPUnit or similar) for all functions
>
> Thoughts?
>
--
*/Nicholas Scott Williams/*
"An idea, I have. Share it with you, I will. Change the world, we will
together."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20090831/d2c7c257/attachment.html>
More information about the Pdns-users
mailing list