Я бы предложил сделать $profiler
свойством основного класса и инициализировать его внутри метода конструктора, поскольку он на самом деле не связан с заголовком.
Предполагая, что это основной класс
class Example {
private $profiler;
public function __construct() {
$this->profiler = new Profiler;
}
public function header() {
...
}
}
Внутри включенного заголовка инициализируйте этот объект и запустите заголовок, и просто, чтобы сделать его более явным, сделайте стартовый вызов профилировщика отдельно:
$example = new Example();
$example->profiler->start();
$example->header();
Внутри включенного нижнего колонтитула:
$example->profiler->end();