Sigo liado con el asunto del caché en Gesbit, no te lo pierdas. Llevo, de hecho, un par de días, trabajando exclusivamente en este asunto. Después de varios intentos, como ya comenté, este parece ser el más "fuerte". Y todavía hay bastantes cosas que se me escapan... sólo que se me ha metido en la cabeza que es hacedero y buena cosa. Entretanto, como suele ser habitual, voy arreglando y optimizando algunas cosas. Una de ellas ha sido el coste de las páginas en Gesbit.

Como sabes, una bitácora tiene, además de entradas, que forman parte de la cronología de la bitácora, también páginas, que están fuera de la cronología de la bitácora, que van un poco "a su aire". Pues bien, mira tú por dónde, ayer descubrí que Gesbit necesitaba 17 consultas SQL para conformar la página de una bitácora. Enseguida pensé que algo iba mal, que había algún error ahí, puesto que, para la portada de una bitácora, Gesbit necesita de 12 consultas SQL, por ejemplo.

Efectivamente, no es que fuera nada mal. Pero, en los temas de Gesbit estaba mostrándose, en las páginas, también el menú de la bitácora o "sidebar". Esto no se hace así cuando se muestran entradas "solas", y de hecho para conformar una entrada "sola" Gesbit precisa de 10 consultas SQL. Así que era eso, sumar a las consultas necesarias para conformar las páginas, las necesarias para conformar el menú de la bitácora, hasta que se sobrepasaba la marca de Gesbit en cuando a consultas SQL para conformar su contenido: nada menos que 17 consultas SQL.

Esto ya está arreglado, dada además mi obsesión por estas cuestiones. Actualmente, Gesbit no muestra el menú de la bitácora en las páginas, de modo que ahora son sólo necesarias 8 consultas SQL para conformar las páginas de una bitácora. Sólo el número de consultas puede hacer pensar que el menú estaba demás en las páginas, dado su costo, pero, no sé si engañado, también creo que es más o menos lógico que el menú no se muestre en las páginas: como tampoco se muestra en las entradas "solas". Quizás me engaño, ya digo, pero, así quedan las cosas, de momento.

Respecto del asunto del caché... en este penúltimo intento estoy implementándolo en el "corazón" de Gesbit. En realidad Gesbit añade una clase más, "GbCache", que es la que se encarga de realizar el trabajo necesario, básicamente. En anteriores intentos había ido más por el lado de utilizar plugins, pero, haciéndolo como ahora puede asegurarse que Gesbit no necesitará hacer ninguna consulta a la base de datos para servir contenido guardado previamente en el caché. Todavía tiene que ejecutar algo de PHP, pero, no hace ni una sola consulta SQL. Veremos en qué queda todo esto.