---------- Forwarded message ----------
From: Fergus Gibson <[EMAIL PROTECTED]>
Date: Fri, Nov 28, 2008 at 12:47 AM
Subject: Re: Fwd: Fwd: [PHP-DB] MySQLi connections

On Wed, Nov 26, 2008 at 9:38 PM, J. Hill <[EMAIL PROTECTED]> wrote:
> I understand there are many cases where database abstraction layers are
> preferable, but in some applications which are heavily dependent on a
> specific database's unique functions, it seems to me that avoiding
> abstraction would decrease the complexity and improve the performance of the
> application -- at the cost of making it more difficult to switch database
> servers.

I don't necessarily mean something pre-built.  You can create your own
abstraction by writing a class composed of the database object you
want to use.  As long as you have a consistent interface and use
encapsulation, you get all the benefits of abstraction.  It actually
hides complexity at the same time that it makes it easier if you need
to migrate to a different database server in the future.  The key to
abstraction is to hide everything but the interface from the rest of
the application so that the other elements can't become dependent on
the specific implementation.

> instead just put
> all the core mysqli calls into a library -- cleaner than scattering them
> across all the files.

That's pretty much the same thing. ;)  The point is that only one
component of your application should have to know about the database.
The rest of it should be completely ignorant.  That way, you only have
to update that one component in a migration.  What sort of object or
functions you use to do the actual database operations is not my
point.  It's about ensuring that the rest of your application never
knows if you're using MySQL, SQL Server, Oracle, Postgres, or
something else.

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to