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

[SOLUCIONADO] PHP OO Acceder a una clase con una variable string

Estas en el tema de Acceder a una clase con una variable string en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola Amigos quisiera saber si es posible hacer esto en php; Estoy trabajando actualmente en laravel 4 tengo un clase llamada 'Country' @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 15/10/2013, 20:16
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Acceder a una clase con una variable string

Hola Amigos quisiera saber si es posible hacer esto en php; Estoy trabajando actualmente en laravel 4

tengo un clase llamada 'Country'
Código PHP:
Ver original
  1. <?php
  2. class Country extends Eloquent
  3. {
  4.     protected $table = 'country';
  5.     protected $primaryKey = 'idcountry';
  6.     public $timestamps = false;
  7.  
  8.     public static function  getCountries()
  9.     {
  10.         //code
  11.         return ...;
  12.     }
  13. }

se que se debe acceder de esta forma:

Código PHP:
Ver original
  1. public function getIndex()
  2. {
  3.     //Obtengo los resultado deseados
  4.     $countries = Country::getCountries();
  5. }

Pero yo quisiera acceder de esta otra forma porque necesito cualquier clase de las 20 que poseo, por eso quiero hacer algo generico que sirva según la petición que desee el usuario, y según esa petición viene un parámetro por ajax que me definira cúal clase usar.
Por lo tanto si por ajax me viene un parámetro llamado clasesolicitada con este valor 'Country' como se captura a continuación, yo pueda acceder sin ningún problema a esa clase

Código PHP:
Ver original
  1. public function getIndex()
  2. {
  3.   //Input::get('clasesolicitada')  es el parámetro que viene por la URL equivalente a 'Country'
  4.   $clase =Input::get('clasesolicitada');
  5.  
  6.    //esta es la forma como quisiera acceder a la clase
  7.    $countries = $clase::getCountries();
  8. }

Se que por Javascript se puede ejecutar vario código como funciones u otras cosas con eval(), pero en php no vi o no entendí como hacerlo con eval().

No se si sea posible hacer lo que deseo pero cualquier ayuda sera bienvenida;
Mil Gracias
  #2 (permalink)  
Antiguo 15/10/2013, 23:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acceder a una clase con una variable string

Eso es perfectamente posible sin hacer uso de eval(), deberías consultar el manual.

Y si tu versión de PHP aún no lo soporta podrías usar call_user_func().

Me sorprende que ni siquiera lo hayas intentado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/10/2013, 10:18
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Acceder a una clase con una variable string

Hola pateketrueke, estoy agradecido por la ayuda al final mi código quedo de la Siguiente Forma

Código PHP:
Ver original
  1. $table = Input::get('clasesolicitada');
  2. $results =call_user_func($table .'::getCountries()');
  3.  
  4. // y si lo quiero con parámetros hago lo siguiente
  5. $results =call_user_func($table .'::getCountries()','2012','1','2');

Muchas Gracias por tu valiosa ayuda..

Etiquetas: clase, function, laravel, php, string, usar, variable
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 05:25.