Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

global y métodos de clase

Estas en el tema de global y métodos de clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Bueno, en vista de que en PHP Orientado a Objetos no me solucionan nada posteo mi duda aquí Cita: Iniciado por jaao_death Antes solía utilizar ...
  #1 (permalink)  
Antiguo 09/06/2009, 08:24
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años, 8 meses
Puntos: 6
Información global y métodos de clase

Bueno, en vista de que en PHP Orientado a Objetos no me solucionan nada posteo mi duda aquí

Cita:
Iniciado por jaao_death Ver Mensaje
Antes solía utilizar global dentro de una función, para tener disponibilidad sobre datos de configuración, punteros de mysqli, etc...; tal que así:
Código PHP:
function myfunction(){
   global 
$config$db;
   ...

Ahora bien, mi pregunta es, se puede utilizar este mismo método en las clases para que los objetos tengan acceso a este tipo de datos? es decir:
Esto es correcto?
Código PHP:
class myclass{
   private function 
onmethod(){
      global 
$config$db;
   }

__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #2 (permalink)  
Antiguo 09/06/2009, 08:29
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: global y métodos de clase

Solo declara las variables normalmente, y estas seran vistas desde cualquier metodo de la clase.

Código PHP:
<?php
class fooBar {
  public 
$hola "hola";
  function 
__construct() {
    echo 
$this->hola//tengo acceso a hola
  
}
}

$foo = new fooBar();
?>
  #3 (permalink)  
Antiguo 09/06/2009, 08:48
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: global y métodos de clase

en realidad lo que quería era por ejemplo crear un fichero config.php donde se declaran las variables de configuración, y posteriormente acceder a estos datos por medio de el método de alguna clase, podría crear una referencia en el constructor, y pasarle el nombre de la variable cuando cree el objeto, pero esto supondría hacer lo mismo en cada clase, con lo cual lo mejor sería emparentarlo con alguna clase madre ( o padre en la terminología), esto supondría hacer un extends en cada clase y por supuesto, crear la clase "base", la cual tendría un constructor que crearía la referencia, pero, no me ahorraría código y trabajo simplemente haciendo un global $var1, $var2; en el método que requiera de estos datos?, es más, no tendría que usar el puntero a objeto $this-> cada vez que requiera de esos datos.
Por esto y tal vez más, repito la pregunta, se puede hacer este tipo de declaraciones?
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #4 (permalink)  
Antiguo 09/06/2009, 08:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Pequeña duda sobre global y métodos de clase

Es posible hacerlo, si, pero no es lo correcto, lo correcto es que esos datos pertenecieran a una clase con el método Singleton para que los puedas leer, o en dado caso, que los tengas como miembros de tu clase al pasarlos por el constructor.

Saludos.
  #5 (permalink)  
Antiguo 18/06/2009, 01:15
 
Fecha de Ingreso: junio-2009
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: global y métodos de clase

Cmpeon, no se si te he comprendido correctamente, tu lo que quieres es tener una clase de configuración que sea accesible desde cualquier punto de tu aplicación??
Esto es sencillo, y mas si utilizas php5,

PHP4


Código PHP:

class Config {

      var 
$data = array(
                                 
'tiempo_estimado' => 1,
                                 
'altura' => 1,
                            );
      
// en este punto puedes rellenar a data con clave valor
     // o crear un método para rellenarla en tiempo de ejecución


       
function &getDefault(){
            static 
$instance null;
            if ( !
$instance $instance = new Config();
            return 
$instance;
       }
       
      function &
getData($name){
            
$obj Config::getDefault();
            return 
$obj->data[$name];
      }
}


//y desde tu código obtendrías el valor de configuración de la siguiente manera:


$valor Config::getData('tiempo_estimado'); 

Espero que te ayude,
Un saludo grande
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 02:38.