Jump to content

Constructors with custom page classes?


AAD Web Team
 Share

Recommended Posts

If we’re using custom page classes, is it acceptable to have a constructor, or does that cause problems by overriding the constructor that should be running in the parent Page class? Should we call the parent class constructor? For example in /site/classes/DefaultPage.php, would this be correct?

class DefaultPage extends Page
{
	function __construct() {
        parent::__construct();

		// … set some class properties for later use …
    }
}

 

Link to comment
Share on other sites

ProcessWire's Page constructor:

https://github.com/processwire/processwire/blob/3cc76cc886a49313b4bfb9a1a904bd88d11b7cb7/wire/core/Page.php#L594

public function __construct(Template $tpl = null) {
        parent::__construct();
        if($tpl !== null) {
            $tpl->wire($this);
            $this->template = $tpl;
        } 
        $this->useFuel(false); // prevent fuel from being in local scope
        $this->parentPrevious = null;
        $this->templatePrevious = null;
        $this->statusPrevious = null;
    }

So in extending custom page calsses I do this:

function __construct(Template $tpl = null) {
    parent::__construct($tpl);
    // my initializations go here...
}

I had no issues with it so far.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...