Variables compartidas en PHP – APC
Los que alguna vez trabajamos con ASP y luego nos pasamos a PHP solo extrañamos una cosa, las variables de Aplicación… Algunos se preguntarán, ¿Qué son las famosas variables de aplicación?
Es muy fácil, la forma mas sencilla de explicarlos es que se imaginen un contador de visitas a una página web, en PHP cómo lo harías? Bueno, tradicionalmente son dos maneras:
- Haces una conexión a la base de datos y ya sea en un parametro o en una tabla donde guardas los registros de las visitas, actualizas o insertas lo que tengas que insertar y luego haces una consulta para saber la cantidad de visitas
- En un archivo de texto vas guardando la cantidad de visitas + 1 según vayan llegando los visitantes, luego lees el archivo para mostrarlo en la web
Pues en ASP esto es mucho mas fácil, porque puedes tener una variable de Aplicación que es accedida desde cualquier parte del código, lo mejor es que esa variable podrá ser modificada o leída por cualquier session, cualquier cliente y siempre será la misma variable para todos.
Pues bien, en PHP eso también es posible y lo acabo de descubrir… quizás ya tu lo sabías pero yo no (soy de la vieja usanza)… se llama «Caché Alternativo de PHP» que te permite tener variables en memoria para que sea accedida por cualquier cliente.
Aquí tienes toda la documentación http://mx.php.net/manual/es/book.apc.php , pero básicamente son 3 métodos los que mas usas:
- apc_add — Poner una nueva variable en caché en el almacén de datos
- apc_store — Guardar una variable en caché en el almacén de datos
- apc_fetch — Traer una variable almacenada desde la caché
Algunos dirán, «eyyyy!! pero existe memcache», y si, tienen razón, pero son dos cosas diferentes, esto es algo nativo de PHP y ademas no necesitas tener corriendo ningun servicio, en cambio el memcache por si solo gasta memoria, por otro lado, los que usan hosting baratos no siempre cuentan con memcahe, además no siempre vale la pena tener un memcache gastando memoria para almacenar una variable. Todo es la conveniencia, de todas formas es una alternativa nativa.
Espero sea útil, a mi me sirvió 🙂
Últimos comentarios