Problem with overriding Functions (oop)

Problem with overriding Functions (oop)

am 20.01.2008 00:32:16 von Johannes Permoser

Hi,

i'va got a class 'Page'. One of it members is an instance of a template engine.
The Page-class has a method render() which calls the functions read(),
transform(), transport() and starts the template engine.

Now I want to reuse the Page class for a more specialized page 'ImagePage'. So:
ImagePage extends Page. This Page contains an extra picture and therefore needs
to call image() before starting the template engine. How do i smartly integrate
that call into the Page::render() function.

I could override the whole funtion, but then i'd have to copy and paste the
whole code for the calls of read(), transform(), transport()?
What's the professional way here?

Johannes

Re: Problem with overriding Functions (oop)

am 20.01.2008 00:39:59 von luiheidsgoeroe

On Sun, 20 Jan 2008 00:32:16 +0100, Johannes Permoser
wrote:

> Hi,
>
> i'va got a class 'Page'. One of it members is an instance of a template
> engine. The Page-class has a method render() which calls the functions
> read(), transform(), transport() and starts the template engine.
>
> Now I want to reuse the Page class for a more specialized page
> 'ImagePage'. So: ImagePage extends Page. This Page contains an extra
> picture and therefore needs to call image() before starting the template
> engine. How do i smartly integrate that call into the Page::render()
> function.
>
> I could override the whole funtion, but then i'd have to copy and paste
> the whole code for the calls of read(), transform(), transport()?
> What's the professional way here?


class ImagePage extends Page{
function render($arg){
$this->image();
parent::render($arg);
}
}

--
Rik Wasmus