[ewiki] intermediate release, planning OO database API

Hi @all,

I'd like to put out an intermediate release around next week, and
make the CVS code base instable after that, when migrating (or first
testing) a new database API.

There is no need to upgrade to this minor release, because there isn't
much new in it and we had no major bugs since the last major release
(R1.01d) I know of. It will only have added the necessary type casts
for working around changes in PHP5.

#

http://erfurtwiki.sourceforge.net/ObjectOrientedDatabaseInterface

will look something like:
- ewiki_db::GET($id, $version)
- ewiki_db::WRITE($hash)
- ewiki_db::SEARCH($fields, $opts, ...)

So the new API will become a static class with function method names,
which as you see isn't all that OO yet. However the database backends
will be encapsulated into classes as well; eventually allowing later
to use multiple concurrently more easily than it is possible now
(for database conversion, transition and export). 

One real benefit of that new API was that more capable database functions
got more call parameters, and that a few more generic calls could be
added. Since everything will be accessed through the new static class
everything will look cooler ;) and no need for passing around a $ewiki_db
object arises. With some luck this may also speed up things a bit (by
getting rid of the string switch()/case construct). Won't get as feature
bloated as the PhpWiki DB interface, of course.

Btw, this doesn't introduce any change in the SQL scheme, nor will it
break existing extensions, since a wrapper for the old ewiki_database()
function interface will remain (in the next versions). It also adds no
dependency on PHP5. Anybody with a customized SQL backend may however
need to load an OO wrapper then (that itself calls an ewiki_database()
interface function).

It's not decided yet and just a plan (comments welcome!). However I'll
use the transition time for looking over all other code; as especially
the auth/ plugins require some review.

mario


######################################################################
ewiki@freelists subscription:
http://erfurtwiki.sourceforge.net/MailingList
http://www.freelists.org/

Other related posts: