Foros del Web » Programando para Internet » PHP »

Clase dinamica, argumentos definidos

Estas en el tema de Clase dinamica, argumentos definidos en el foro de PHP en Foros del Web. Buenas, Mi idea es poder ejecutar una clase determinada, con los argumentos necesarios para su ejecución ... algo del tipo $variable = new $cargaClase($sus_parametros) Si ...
  #1 (permalink)  
Antiguo 21/10/2007, 10:01
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
Clase dinamica, argumentos definidos

Buenas,

Mi idea es poder ejecutar una clase determinada, con los argumentos necesarios para su ejecución ...

algo del tipo
$variable = new $cargaClase($sus_parametros)

Si el constructor no tiene paramteros no problem, pero si este tiene parametros sólo he visto una solución desde PHP5 con la el uso de Reflect ...

Si alguien sabe como puedo hacerlo para PHP4 ...

Gracias,
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #2 (permalink)  
Antiguo 22/10/2007, 01:01
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Clase dinamica, argumentos definidos

Mira si te sirve http://es.php.net/manual/en/function...iable-arg-list Es para funciones, pero quizas tambien sirve para metodos.
  #3 (permalink)  
Antiguo 22/10/2007, 03:02
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Clase dinamica, argumentos definidos

gracias DarkJ,

El tema de las constante ya lo estuve estudiando, mas pq si utilizas una variable para crear toda la linea de entrada de la función, se lo come como un único argumento = es lógico ...

El problema es que yo realizo esta instanciación X veces, y una constante no puedes modificar su valor en tiempo de ejecución ;)

Tampoco puedes generar antes de la compilación Y constantes diferentes, con el valor de argumento asociado, también se queja, y es normal es el flujo normal de ejecución ...

Otra posibilidad que estuve estudiando fue :
http://es.php.net/manual/en/function...func-array.php

Pero al ser en la instanciación de una clase, ni si quiera me lo reconoce ...

Esta otra opción es buena, pero parece que sólo rula a partir de PHP5, y la realidad de los servidores es otra, tengo que buscar la compatibilidad con PHP4 ;)

$args = array('a', 'b');

// class name of new object
$className = 'myCommand';

// make a reflection object
$reflectionObj = new ReflectionClass($className);

// use Reflection to create a new instance, using the $args
$command = $reflectionObj->newInstanceArgs($args);


Gracias,
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #4 (permalink)  
Antiguo 22/10/2007, 03:17
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Clase dinamica, argumentos definidos

Y si lo utilizas como funcion solamente ?...

Algo como esto:

Código PHP:
/* FILE: test.php */
class test{
    function 
login($user,$pass){
        
$pass md5($pass);
        
$sql "SELECT *
            FROM administracion
            WHERE user = '"
.$user."'
            AND pass = '"
.$pass."'";
        
$result mysql_query($sql);
        while(
$data mysql_fetch_array($result)){
            if(
strlen($data['ad_user']) > 0){
                
$_SESSION['userneim'] = $user;
                
$cadena 'ok';
                return 
$cadena;
            }else{
                
$cadena 'error';
                return 
$cadena;
            }
        }
        
$cadena 'no existe';
        return 
$cadena;
    }

Pagina que llama a la funcion
Código PHP:
include_once('test.php');
$Test = new test();
/* Tu programacion */
$user 'pedro';
$pass 'peuro';
$esta $Test->login($user,$pass);
if(
$esta <> "ok"){
    echo 
$esta;
}
/* Tu programacion */ 
Algo vanal pero a mi me ha servido desde php 4 en adelante y cuando no tengo los parametros la llamo con las variables vacias.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 22/10/2007, 09:23
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Clase dinamica, argumentos definidos

Acá tenés una solución, aunque no parece muy "elegante"
  #6 (permalink)  
Antiguo 22/10/2007, 22:50
 
Fecha de Ingreso: junio-2006
Mensajes: 37
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Clase dinamica, argumentos definidos

y si utilizas extends?
  #7 (permalink)  
Antiguo 23/10/2007, 01:46
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Clase dinamica, argumentos definidos

Pues lo unico que se me ocurre es que en lugar de new uses una factoria que reciba como parametros el nombre de la clase y los parametros:

$objeto=factoria::crear($clase,$args);

Dentro del crear de la factoria si creo que puedes usar call_user_func_array().

Última edición por DarkJ; 23/10/2007 a las 01:58
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 16:17.