Re: PHP 5 Object Inheritance

From: Date: Fri, 15 Jul 2005 20:52:12 +0000
Subject: Re: PHP 5 Object Inheritance
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-218778@lists.php.net to get a copy of this message
Chris wrote:
Hi, I've got a collection of Element classes (about 8 different ones). They are all subclasses of a single parent element. I'm trying to extend their functionality (both the individual classes, and the parent class they inherit). I can extend each Element subclass with it's new specific functionality, but I would also like to add specific functionality to all of the subclasses. Extending the parent element with the new functionality would *seem* to be the way to go, but I can't make it work None of the Subclasses inherit from the extended superclass. Any thoughts? I'd appreciate any ideas.
BaseElement |- SubElement1 | \- ExtendedSubElement |- SubElement2 |- SubElement3 |- SubElement4 |- SubElement5 |- SubElement6 |- SubElement7 |- SubElement8 \- ExtendedBaseElement ExtendedSubElement will never be able to inherit from ExtendedBaseElement. there is no multiple inheritance in php. So either change your 'tree': BaseElement \- ExtendedBaseElement |- SubElement1 | \- ExtendedSubElement |- SubElement2 |- SubElement3 |- SubElement4 |- SubElement5 |- SubElement6 |- SubElement7 |- SubElement8 ... stick the functionality of ExtendedBaseElement into BaseElement and get rid of the ExtendedBaseElement ... or figure out a neat way to use the 'Decorator Pattern' (http://www.google.com/search?q=Decorator+Pattern) in order to conditionally make extended functionality available in specific descendant classes? otherwise post some code (cutdown :-) for people to look at.
Thanks, Chris


« previous php.general (#218778) next »