Controllers
Overview
AbstractController Base Class
Key Methods
Example: PageController
PageControllernamespace PressGang\Controllers;
use Timber\Post;
use Timber\Timber;
class PageController extends AbstractController {
protected Post $post;
public function __construct(string|null $template = 'page.twig') {
parent::__construct($template);
}
protected function get_post(): Post {
if (empty($this->post)) {
$this->post = Timber::get_post();
}
return $this->post;
}
protected function get_context(): array {
$post = $this->get_post();
$this->context['page'] = $post;
$this->context['post'] = $post;
return $this->context;
}
}Usage in Templates
Extending Controllers in Child Themes
Example: Extending PageController
Note on MVC Abstraction
Last updated