Login | Register
My pages Projects Community openCollabNet

Discussions > dev > [propel-dev] Re: Combine, Windows ...

Discussion topic

Back to topic list

[propel-dev] Re: Combine, Windows ...


Author hlellelid
Full name Hans Lellelid
Date 2004-01-06 18:17:28 PST
Message Hi -

David's in charge of the direction of Combine, of course, but I just
wanted to respond to a couple points that address Propel/Creole.

Raoul Pierre wrote:

>IMAH, people must have the choice of the DB access layer. So the point would
>be to define in Combine an interface for this layer. And to write driver for
>each implemantation: adodb, creole, pear:db...
I like the principle of being able to swap out the backend, but in
practice (in PHP) I'm not sure this is practical. Adding yet another
layer of abstraction (or using interfaces) to avoid coupling Combine (or
Propel ) to a particular RDBMS.

Also, in the case of Propel, the other abstraction layers simply don't
have the featureset we need. Specifically, in Propel we are using
metadata features and abstracted database types that are only available
in Creole -- in fact this is why Creole was created (that & ability to
play nice w/ Exceptions in PHP5). I have lots of experience w/ ADOdb
and DB, and MDB and would have gladly backended Propel w/ MDB if it had
been able to handle it. MDB2 may support the features we need -- but
still is too weak in metadata department, last I looked.

That said, in theory it would not be difficult to swap out the code that
uses Creole in Propel. Of course I haven't done it, but it should be as
simple as swapping out the BasePeer class, as that's where the db access
happens. There's supporting code (e.g. in Transaction or the
IdGenerator classes) but I think it can all be ignored since everything
is called from BasePeer.

>Just for my information: I thought that Propel has the same DB acces goal
>level that combine. Does it mean that you think of an interface/driver
>structure at this level?
David can comment more on what the differences between these systems
are. I think the short answer is that Propel is a more extensive port
of Apache Torque. Besides having some additional functionality (liking
building XML schema from db metadata), I don't know what the difference
is in the generated classes or supported options.

>>I had started using Pear::DB before I knew
>>that the Propel project existed. Propel requires php5, so we are
>>going to make php5 a requirement going forward.
>As Php5 is still very far from being everywhere, I think it a key point to
>stay compatible with php4.
>Binary Cloud includes a php4 backported version of Creole, but not of
Yeah, Jason Hines created a port of the Creole which is cool.
Binarycloud may use Propel as their official (or alternative) backend at
some point. I think BC plans to release for PHP4, but very shortly
after to move their codebase to PHP5. BC also has another persistence
layer: Storage.

It's true that PHP5 is far from being everywhere, but I feel like it
will be everywhere sooner if there are awesome tools out there for it.
For my part, PHP5 is extremely addictive. I've convinced my boss that
PHP5 is the way to go, because I can't bring myself to write more crappy
php4 error handling systems. :) I run PHP5 (cgi) on my shared host, and
will do everything I can to convince them to run the php5 apache module
as soon as it's stable.


To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
For additional commands, e-mail: dev-help at propel dot tigris dot org

« Previous message in topic | 1 of 1 | Next message in topic »


Show all messages in topic

[propel-dev] Re: Combine, Windows ... hlellelid Hans Lellelid 2004-01-06 18:17:28 PST
Messages per page: