Re: PEAR and DB abstraction layer (was: PHPLIB)
| From: | Manuel Lemos | Date: | Mon, 03 Jul 2000 05:45:03 +0000 |
| Subject: | Re: PEAR and DB abstraction layer (was: PHPLIB) | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-820@lists.php.net to get a copy of this message | ||
Hello Jon,
On 03-Jul-00 00:06:08, you wrote:
>> >Wauw. PHP now has four DB abstraction layers that I have heard of:
>> > - PEAR's (will probably work from PHP 4.0.1)
>> > - PHPLIB's
>> > - Metabase
>> > - http://phpdb.linuxave.net/
>>
>> >It would be great if at least some of the abstraction layer could
>> >unite.
>>
>> Believe me that I tried, but the conclusion is that each one wants
>> to go their way and have their package to prevail instead of
>> cooperating to develop a single dominant database abstraction for
>> PHP like there is for Perl, Java, Python, etc.. There have been
>> intense discussions on this that ended in a impass, so there is no
>> point to bring that up again.
>I'm my opinion, the right thing to do is to pool all of our efforts
>into PEAR. That way, we can treat it as a standard PHP component, and
>we don't have to make assumptions about the end user (other than that
>they have a recent version of PHP with PEAR).
>Even if the other abstraction implementations are farther along or
>just plain work better, they should be merged into PEAR so that all
>PHP users can benefit from a common API out of the box.
The problem is that PEAR-DB is very incomplete and it will take a long time
to stablize with all the features that are need. PHP core developers
decided to develop PEAR-DB from scratch instead of building on one of the
existing solid PHP abstraction packages.
PHP users need a database abstraction package now, not in one year or so
when PEAR-DB is solid and has all the important features that others have
now.
From my experience, a good database abstraction package takes a long time
to develop and stabilize on a definite API. I waited about a year until I
decided that Metabase was ready for public distribution. It would have
been a mistake to release sooner because the API evolved incompatibly
during that period. It would cause harm to users keep release versions
of the package that had incompatible API.
I expect that happens with PEAR-DB or else it might get stuck in the
evolution of its features to not break compatibility with earlier versions
of the API.
Therefore I don't recommend the adoption of PEAR-DB right now for larger
applications or else you might end up having to rewrite large parts of of
your applications later if PEAR-DB API compatibility has to be broken to
let it evolve. I'm not saying this because I want you to use Metabase as
alternative, but rather because I can see the risks of adopting a package
that is bearly under development. Even not using any database abstraction
package at all would be a better alternative for now.
Personally I am not going to stop developing Metabase to spend time
developing PEAR-DB so it can catch up sooner. I developed Metabase to
satisfy the database abstraction needs of my projects. I need to move on
and develop more components like those that I described in a previous
message because I need them for my applications now.
Since I live from the applications that I develop I can't justify stopping
developing Metabase to walk backwards redoing what is already implemented
in Metabase but adapted to PEAR-DB design.
Maybe later if PEAR-DB catch up on the development at least up to the level
that Metabase is in today, I'll consider merging, but I am not the betting
on that. You know, free software development is based on good will be the
developers. You can't just rely on the expectation that they will develop
exactly the stuff you need. So, you'd better rely on what exists today and
works for you than putting high hopes on something that you were never told
that it will happen.
Regards,
Manuel Lemos
Web Programming Components using PHP Classes.
Look at: http://phpclasses.UpperDesign.com/?user=mlemos@acm.org
--
E-mail: mlemos@acm.org
URL: http://www.mlemos.e-na.net/
PGP key: http://www.mlemos.e-na.net/ManuelLemos.pgp
--