Касаемо моего App, это оболочка, внутри доступен объект БД. он доступен всему приложению, аналогично глобальной переменной.
<?php
class App{
protected static $_instance;
private function __construct(){
return new PDO('mysql:host=localhost;dbname=dbname','user','pass');
}
# Singlton methods
public static function getInstance()
{
self::$_instance = self::$_instance ?? new self;
return self::$_instance;
}
public static function useDB()
{
// Чего-то делаем с созданным экземпляром PDO, обращаясь к нему, как к self
}
private function __clone() {}
private function __wakeup() {}
}
# Init
App::getInstance();
# Из любого файла вызываем метод обёртки на манер:
App::useDB();
?>
Мне кажется, эта формулировка ближе именно к рендерингу. Шаблонизатор - это, скорее, сборка из кусков кода, генерируемых сервером.
Рендеринг бывает как серверный, так и клиентский. И даже комбинированный =)