Sorry, pero en realidad no entiendo bien como funciona tu sistema de plantillas, tienes varios errores de diseño:
1- La clase extiende desde db y no veo que relacion pueda tener una clase de acceso a base de datos (mejor asociadas con modelos y tal vez controladores) con plantillas (asociadas principalmente a vistas y, bueno, tal vez tambien a controladores).
2- En varias funciones generas una nueva instancia de db y no tiene caso, principalmente porque no veo la relacion entre ambas clases y,
ademas, tampoco veo que ejecutes consultas, aunque posiblemente las omitiste para mostrarnos lo que tienes (sorry, ya lo vi).
Si realmente es necesario generar consultas a base de datos, crea una variable privada que contenga la instancia a la base de datos y la envias al momento de instanciar templates:
Código PHP:
Ver original$db = new db();
$template = new templating($db);
// Luego, en templating:
class templating {
private $db; // Por notacion, seria mejor nombrarla $_db (por ser privada)
public function __construct($db) {
$this->db = $db; // Ya tienes una sola instancia para usarla cuando la necesites
}
public function cualquierFuncion() {
$this->db->select("bla bla bla");
}
}
3. Yo tambien estoy iniciandome con POO y cometia el mismo error que tu de usar
global $variable;
Hay cosas que pueden guardarse como variables de la misma clase (publicas o privadas), otras que tal vez sean mas conveniente definir como constantes y, las mas minimas, seran pasadas como argumento de caa metodo. Esto ayuda a hacer mas legible el codigo y a saber siempre en que ambito esta disponible cada cosa.
4. Generalmente los sistemas de plantillas funcionan mediante archivos de texto y no registros en la base de datos. Imagino que si el sitio llega a tener gran cantidad de visitantes, podria haber sobre carga del servidor de bases de datos y algun mensaje del tipo "too many connections" o similar.
Bueno, despues de todas mis divagaciones, una pregunta:
Podrias mostrar un ejemplo de como se conforma una de tus plantillas?, porque viendo solo el PHP hay pocas probabilidades de sugerir alguna estrategia para incluir IF's