Posted by m6w6 on 3rd August 2004 in Mike's sudden inspirations: PHP
While talking with Daniel and Lorenzo about “Tree Reincarnated” I regularly stumble across the question what approach to use to implement different backends: “Class inheritance or Containers?”.
I personally feel that using the container approach leads to massive code duplication, while using class inheritance avoids the most (most, because there’s no real multiple class inheritance in PHP).
Container
class PublicAPI
{
var $container; // SpecificAPI
function doSomething()
{
return $this->container->doSomething();
}
}
Class Inheritance
class SpecificAPI extends PublicAPI
{
function doSomething()
{
// do something only this class needs to do
}
}
?>
So what do you feel about this topic and how you’d handle that?
UPDATE
While looking again at Daniel’s nice diagram, I feel like we’ve already reached the point where solving this problem with class inheritence is impossible (despite using aggregate*() - you’re right Lorenzo, again :) have nice holidays! ).
Tree_Admin_Simple_MDB2 would have to extend Tree_Simple_MDB2 and Tree_Admin_Simple_RDBMS…
Mike’s arrived at the dead end, again ;)