Class that handles header and footer includes looks like a mess
Separation of Concerns

You should implement Separation of Concerns. In your case, don't mix logic with your view. Follow basic MVC, where M (model) is the data source, V (view) is where your HTML is, and C (controller), where all your logic is. In this case, put your HTML in one file, the logic in the other.

Templating

One thing that messes up development is when logic is mixed to the template. It makes the template messy and hard to maintain and visualize. I suggest you take a look at the PHP implementation of Mustache templates. In your controller, simply make a function that loads the template to a variable, feeds it to Mustache, put some data in and done.

Inheritance

One use of inheritance is to hide utility functions. For instance, you can create a View class, where your future views inherit from. 

End Result

You can simply do something as simple as this in the controller!

public function index(){
    $myView = new View('path/to/template');     // Create a view
    $myDataSource = new Model('MODEL_NAME');    // Create a model
    $theData = myDataSource-&gt;getData();         // Grab data
    $theResultHTML = myView-&gt;render($theData);  // Render data to template and print
}