Foros del Web » Programando para Internet » PHP »

¿Variables de aplicación?

Estas en el tema de ¿Variables de aplicación? en el foro de PHP en Foros del Web. En ASP existe el concepto de las variables de aplicación, las cuales son como una especie de variables de sesión pero que no le pertenecen ...
  #1 (permalink)  
Antiguo 21/07/2003, 10:51
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
¿Variables de aplicación?

En ASP existe el concepto de las variables de aplicación, las cuales son como una especie de variables de sesión pero que no le pertenecen a ninguna sesión en particular.

La ventaja de tales valores es que le permiten al programador "poner a mano" algunas cosas de uso frecuente para no tener que ir por ellas a la base de datos cada vez que se necesiten (además de poder administrar dichos valores sin tener que reescribir código).

Mi pregunta es: ¿Existe en PHP algo parecido? ¿Puedo yo poner una lista de valores que se levanten junto con Apache (o IIS) y que sean de uso común a todas las sesiones?

Saludos.
  #2 (permalink)  
Antiguo 21/07/2003, 13:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Me temo que no. O al menos yo no me he encontrado con ello (tampoco lo he necesitado). La solucion es crear una tabla en base de datos para guardar esos valores. Quien dice base de datos dice cualquier tipo de persistencia (ficheros, ...).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/07/2003, 16:51
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Gracias josemi, a ver si otra persona me proporciona otras alternativas...

Saludos.
  #4 (permalink)  
Antiguo 21/07/2003, 19:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues reafirmo lo que comenta Josemi ...

En PHP las sesiones como tales son exclusivas del cliente que las inicia .. por ende no son "compartidas" (lo mismo que las cookies).

Así que .. tan sólo usa un simple archivo de texto plano y te guardas ahí las variables que necesites con alguna estructura mas o menos "standard" para que las recojas sin problemas.

Tal vez en www.phpclasses.org tengas alguna classe ya implementada que "simule" el comportamiento del "global.asa de ASP" ... Pero la base es la que comenta josemi: cualquier médio de almacenamiento "persistente" y .. de ahí a gestionartelo mas o menos "a mano" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 22/07/2003, 13:00
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
Una forma sencilla para resolver ese problema es que uses las funciones que implementa php para WDDX. Que como lo comente en otro mensaje es un formato que facilita el intercambio de datos entre aplicaciones de diferentes plataformas. Pero te puede ayudar en el sentido que hace un representacion abstracta de los tipo de de datos en un archivo XML. Es decir que puedes alamacenar las variables que quieres compartir y luego usarlas por el script que lo requiera en forma local o remota.
Para mas informacion te remito al manual de php http://www.php.net/manual/en/ref.wddx.php, ando con prisa en este momento pero haber si mas al rato pongo un ejemplo si no en este post puse un ejemplo de uso para otras condiciones pero igual te sirve http://www.forosdelweb.com/showthrea...highlight=WDDX
  #6 (permalink)  
Antiguo 22/07/2003, 15:19
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Gracias Cluster y Herminio Heredia San, creo que con lo que me ha dicho josemi y lo que me han dicho ustedes, no solo tengo mi respuesta sino que además tengo "alternativas" por donde buscar.

Saludos.
  #7 (permalink)  
Antiguo 22/07/2003, 15:46
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
Solo para complementar mi respuesta de hace un rato agrego el ejemplo que prometi.
Bien este es un ejemplo muy sencillo que escribe un paquete WDDX a disco duro en un archivo global.xml.
Este ejemplo te puede servir para crear funciones de lectura y escritura en este formato.
------ escribir.php ------
Código PHP:
<?php

     
// guardamo los datos que vamos a compartir
     
$datos = array( 125,
                     
'bla bla bla',
                     
1235 );

     
// Iniciamos un paquete wddx
     
$wddx_id wddx_packet_start'Datos compartidos' );
     
// Agregamos la variable o las variables
     //que se vayan a requerir
     
wddx_add_vars$wddx_id'datos' );
     
// Serializamos el paquete
     
$wddx_paquete wddx_packet_end$wddx_id );
     
// Por ultimo guardamos en un archivo
     // el paquete que creamos.
     // Recuerda proteger este archivo
     
$archivo './archivos/global.xml';
     
$fp fopen$archivo'w+' );
     
fwrite$fp$wddx_paquete );
     
fclose$fp );

?>
nuestro siguiente script se encargara de obtener nuestras variables compartidas.
------ leer.php ------
Código PHP:
<?php
     
// archivo donde almacenamos nuestras
     // variables.
     
$archivo './archivos/global.xml';
     
// obtenemos el paquete WDDX del archivo global.xml
     
$wddx_paquete implode' 'file$archivo ) );
     
// deserializamos el paqute para obtener
     // las variables almacenadas en el.
     // Nota. Esta funcion devuelve un arreglo
     //asociativo con  indices que correponden
     // al nombre de la variable que almacenamos
     // en este caso 'datos'
     
$comp_array wddx_deserialize$wddx_paquete );
     echo 
$comp_array['datos'][0]."</br>\n";
     echo 
$comp_array['datos'][1]."</br>\n";
     echo 
$comp_array['datos'][2]."</br>\n";

?>
  #8 (permalink)  
Antiguo 22/07/2003, 16:01
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 10 meses
Puntos: 0
Muy buena la apreciación de todos los que intervinieron en este tema.

sólo quiero acotar para el último post con el significado de las siglas.

WDDX(Web Distributed Data Exchange)

Algo como (Intercambio de Datos Distibuidos en la Red).


Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:50.