Buenas:
Veréis estoy creándome mi propio Framework para PHP y quería consultaros una duda que me ha surgido. Mi Framework hace uso de la base de datos para todo.
Por poneros un ejemplo. La primera vez que entramos al index.php
- Comprueba que eres usuario (no hace consulta porque no tienes una cookie, pero si la tuviese comprobaría en la base de datos el hash).
- Comprueba que el sitio está encendido (Hace una consulta a la tabla settings y comprueba que siteoff tiene valor 1)
- Recoge el nombre de la sección en la que estamos (en el caso de estar en index.php hace una consulta a la tabla settings que le dice el startpage) y comprueba que exista una sección inicializada en la tabla sections, si existe carga la sección correspondiente
- Comprueba que tienes permisos para leer la página (Hace una consulta a la tabla permissions y hace las comprobaciones necesarias).
- Se carga el theme por defecto, etc.
Vamos, que a lo tonto a lo tonto me hace como 20 consultas a la base de datos.
Y aquí viene mi problema. Hasta ahora he estado usando mi framework de la siguiente manera. (Por ejemplo pongo la función que me da los valores de los settings.
Código PHP:
function getSettingsValue($name){
$dbConn = Database::getConnection("user") // Lanza una conexión en modo usuario (hay dos tipos de usuarios en la BD y éste tiene muchas limitaciones, por si acaso).
$obj = Database::selectObj("settings", "value", "name = $name") // SELECT value FROM settings WHERE name = $name
Database::close($dbConn);
return $obj['value'];
}
Claro, lo que vengo pensando ahora es que menuda estoy montando abriendo y cerrando conexiones de bases de datos cuando podría unificarlo todo en una poniendo al inicio del index.php el connect y al final el close.
Que es mejor? como lo estoy haciendo o de la otra forma?
Saludos.