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

Ayuda OOP (incomming from java)

Estas en el tema de Ayuda OOP (incomming from java) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Primeramente saludos a la buena gente de forosdelweb. He leido muchos de sus posts aprendiendo php. Me gustaria que me dieran una mano un poco ...
  #1 (permalink)  
Antiguo 25/11/2006, 22:54
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Ayuda OOP (incomming from java)

Primeramente saludos a la buena gente de forosdelweb.
He leido muchos de sus posts aprendiendo php.

Me gustaria que me dieran una mano un poco mas personalizada con lo que estoy desarrollando, ya que me cuesta un poco entender como implementa la OOP php.

Lo que estoy tratando de hacer es pedirle a un "bean" o un objeto que cargue datos, que me diga cual es la clase que se encarga de el acceso a la base de datos para cargarlo, o cual es la clase que se encarga de representarlo en el navegador.

La idea es que implementando una interfaz, distintos objetos de distintas clases puedan ser cargados en un array y ser representados o guardados con cierto automatismo, y que en el mismo objeto pueda saber cual es la clase que tiene la responsabilidad de guardarlo o renderizarlo, o lo que sea.

Ejemplo (no creo que este correcta la sintaxis, ni mucho menos, pero es la idea de lo que trato de hacer):


Interface "Bean":

Código PHP:

interface Bean
{
     
/*** Supuestamente este metodo tendria que devolver
             la clase que corresponde al Data Access Object de la 
             instancia en cuestion *****/

     
public class getDAO();

     
/*** Supuestamente este metodo tendria que devolver
             la clase que corresponde al Formulario de la instancia en
             cuestion *****/

     
public class getForm();



Ahora un par de clases que los implementan:

Código PHP:

class Persona implements Bean
{
     public 
$id;
     public 
$nombre;
     public 
$apellido;
     public 
$documento;

     public class 
getDAO()
     {
          return 
PersonaDAO;
     }

     public class 
getForm()
     {
          return 
PersonaFORM;
     }

}


/************************************/



class Cliente extends Persona implements Bean
{
     public 
$id;
     public 
$nroCuenta;
     public 
Persona $persona;  //esto tampoco anda no?

     
public class getDAO()
     {
          return 
ClienteDAO;
     }

     public class 
getForm()
     {
          return 
ClienteFORM;
     }


lo que no estoy pudiendo hacer es:

Código PHP:

<?

$persona 
= new Persona();

$cliente = new Cliente();

$DAO = new $persona->getDAO();  //  <- eso no se puede...
/**
$obj = $DAO->datos();

$DAO = new $cliente->getDAO();

$obj = $DAO->datos();

etcetera

**/

?>
Ah otra cosa que no me quedaba demasiado clara... para persistir objetos en memoria a traves de varios requests... casi la unica forma viable es usando la sesion y serialize() unserialize() no?


Cualquier sugerencia sera bienvenida. Muchas gracias por su tiempo.

Última edición por Core2Quadro; 25/11/2006 a las 23:00
  #2 (permalink)  
Antiguo 26/11/2006, 00:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
No entiendo bien tu duda, para implementar una interface tienes que declarar el metodo en tu clase, ahora la forma para PHP es muy directa, casi como java, asi que no veo porque tienes ese problema.

Para "solucionar" lo que haces puedes usar strings en lugar de constantes:
Código PHP:
class Persona implements Bean
{
     public 
$id;
     public 
$nombre;
     public 
$apellido;
     public 
$documento;

     public class 
getDAO()
     {
          return 
"PersonaDAO";
     }

     public class 
getForm()
     {
          return 
"PersonaFORM";
     }

}

$DAO = new $persona->getDAO(); // No estoy seguro si asi pero puedes probar asi:
$pDAO $persona->getDAO();
$DAO = new $pDAO(); 
Y para contestar tu ultima duda, para persistir los objetos en la memoria, si usas sesiones, pero no necesariamente serialize y unserialize puedes guardar un objeto directamente en el array de $_SESSION y sacarlo en la otra pagina.

Ej:
Código PHP:
// Incluir definicion de tu clase

$objeto = new Objeto();
session_start();
$_SESSION['elObjeto'] = $objeto
Código PHP:
// Importante incluir la definicion antes
session_start();
$objeto $_SESSION['elObjeto']; 
  #3 (permalink)  
Antiguo 26/11/2006, 01:18
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Excelente!!! muchas gracias Gator!!!

Pense que era algo mas complejo, pero solo pasandole un string con el nombre de la clase, ya la puedo instanciar!!!

Código PHP:

class A
{
     public function 
getDAO()
    {
         return 
A_DAO();
    }
}

/************/

class A_DAO
{
     public function print()
     {
          echo 
"<h1>ANDAA!!!</h1>\n";
     }
}


/*********************/

$a = new A();

$adao $a->getDAO(); 
// estaria excelente poder hacer $adao = new $a->getDAO()(); 

$DAO = new $adao();

$DAO->print(); 

Muchas gracias denuevo
  #4 (permalink)  
Antiguo 26/11/2006, 16:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Buenass, mmmm tienes todas las papeletas para venir de java aun así y siendo java uno de los lenguajes que mejor se puede aplicar la ingenieria del software (paradigma OOP, patterns, relación UML-code) veo que tienes problemas de "responsabilidad de objetos". Es decir una de dos:

1) Estas intentando aplicar la filosofia java a php5, cosa que veo un error
2) Estas confundiendo las responsabilidades entre objetos.


Tu código de hecho está mal tanto de sintaxi como de comprensión OOP

defines una interface Bean, luego implementas Bean con Persona, luego haces class Cliente extends Persona implements Bean, de hecho no es necesario hacer esto con un
Cliente extends Persona ya es sufieciente ya que Persona implementa Bean es teoría de OOP.
Luego para darle robustez al código consideraría poner Persona como clase Abstracta siempre que delegue en otra clase y sirva para definir no para implementar. Te pongo un ejemplo:

Código PHP:
<?php


interface Bean{
    
    public  function 
getNombre();
}

abstract class 
Persona implements Bean{
    
    protected 
$_nombre;
    
    public function 
__construct($nombre){
        
$this->_nombre $nombre;
    }
    
    public function 
getNombre(){
        return 
$this->_nombre;
    }
}


class 
Empleado extends Persona {
    
    public function 
__construct($nombre){
        
parent::__construct($nombre);
    }
    
}



$juan = new Empleado("Juan");

echo 
$juan->getNombre();

?>
La salida del programa será juan.

Otra cosa importante es el tema de tipado de funciones. Cuando haces public class getDAO(); creo que más bien deberias referir-te a una cosa así:

Código PHP:
public function getDAO(){
  return new 
Dao();

Aunque el tema Bean es de Java y lo que haces se parece a Struts un poco intuyo en tu poco de código que el DAO o getDao deberia implenetar singleton, así como Form. O sino una funcion estatica. Para más información sobre POO y novedades de php5 te recomiendo para leer PHP 5 Power programming no te pongo deberes simplemente es una sugerencia.

Ya me diras..

Última edición por Casuis; 26/11/2006 a las 16:17
  #5 (permalink)  
Antiguo 29/11/2006, 19:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por si acaso .. PHP 5 Power programming es un libro que puedes obtener en forma gratuita de la editorial (Prentice Hall) que lo distribuye en formato PDF:

http://www.phptr.com/content/images/...7149X_book.pdf

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 29/11/2006, 21:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Wow gracias Cluster esta muy bueno este libro.
  #7 (permalink)  
Antiguo 30/11/2006, 05:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por GatorV Ver Mensaje
Wow gracias Cluster esta muy bueno este libro.
Lo bueno es que es totalmente gratuito (y legal), .. no sé por qué la editorial en cuestión lo liberó en PDF gratuito (tal vez para hechar una mano a la promoción de PHP 5? ..).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 30/11/2006, 09:01
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
No recuerdo si ya puse esto... pero aqui hay muchos libros .... solo hay q ponerle la categoria "PHP"
www.ebooksportal.org
Libros completos y gratuitos...
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #9 (permalink)  
Antiguo 30/11/2006, 09:32
 
Fecha de Ingreso: marzo-2006
Mensajes: 39
Antigüedad: 18 años, 1 mes
Puntos: 0
q buena pagina =D
aca tambien pueden buscar

noballs.org/ebooks/
  #10 (permalink)  
Antiguo 30/11/2006, 15:34
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Pregunta

Cita:
defines una interface Bean, luego implementas Bean con Persona, luego haces class Cliente extends Persona implements Bean, de hecho no es necesario hacer esto con un
Cliente extends Persona ya es sufieciente ya que Persona implementa Bean es teoría de OOP.
oops

Cita:
Para más información sobre POO y novedades de php5 te recomiendo para leer PHP 5 Power programming no te pongo deberes simplemente es una sugerencia.
GRACIAS ya lo estoy bajando... eso es muy util, que alguien que sabe te diga de un buen libro, antes que andar bajando 50 libros y viendo cuales no son basura...

Evidentemente estoy teniendo problemas para entender objetos ... en php, jej.

aca tengo una clase que estoy armando de la que pienso heredar para hacer tablas especificas de mantenimiento, y ubicarlas en el ambito de la session.
Esto es porque quiero a traves de ajax modificar los datos de las mismas tablas (objetos) que voy a renderizar en un script al inicio, con otro script "listener", que busque de la session el dato a modificar y devuelva el procesamiento.

Esta es la clase que estoy probando pero me tiene loco con errores de sintaxis y conceptuales:

Código PHP:
<?

class Table
{
     public 
$nombre "esta";
     public 
$campos = array('ID','Nombre');
     public 
$orden;
     public 
$sentido;
     public 
$puntero;
     public 
$cantidad;
     public 
$ajax_listener;
     
     public function 
setNombre($nomb)
     {
         
$nombre $nomb;
     }
     
     public static function 
tab($numero)
     {
         
$cadena "";
        
$n 0;
        while (
$n<$numero)
        {
            
$cadena $cadena."\t";
            
$n++;
        }
         return 
$cadena;
     }
     
     
     public function 
begin()
     {
         echo 
'<div id="'.$nombre.'"><!--ancla name="'.$nombre.'"/-->';
        echo 
Table::tab(2)."<table>\n".Table::tab(3)."<tr>\n".Table::tab(4);
        
        for(
$i =0;$i<sizeof($campos); $i++) 
        {
            echo 
'<th>'.$campo[$i].'</th>';
        }
        echo 
"\n".Table::tab(3)."</tr>\n";
     }
     
     
     
     public function 
end()
     {
         echo 
Table::tab(3)."<tr>\n".Table::tab(4)."<td colspan=\"".getCantidadCampos()."\">\n";
        echo 
Table::tab(5).'<span><strong>Mostrar de a </strong>'.
                    
'<input type="text" value="'.$cantidad.'" name="cantidad_registros_'.
                        
$nombre.'" size="3"/>'.
                    
' registros.</span>';
        echo 
'<input type="button" value="Mostrar" onclick="cargar_tabla_'
                        
.$nombre.'(this.value)"/><br/>';
        echo 
Table::tab(4)."</td>\n";
        echo 
Table::tab(3)."</tr>\n";
        echo 
'</div>';
     }
     
     public function 
getCantidadCampos()
     {
         return 
sizeof($campos);
     }
     
     public function 
javascript()
     {
          echo 
'<script type="text/javascript" language="javascript">'."\n";
         echo 
Table::tab(1).'function cargar_tabla_'.$nombre.'(cantidad_registros)'."\n";
         echo 
Table::tab(1)."{\n";
         echo 
Table::tab(2).'ajax.open("post","'.$ajax_listener.'?element='.$nombre.
                         
'&cantidad_registros=")'."\n";
         echo 
Table::tab(2).'ajax.open("post","'.$ajax_listener.'?element='.$nombre.
                         
'&cantidad_registros=")'."\n";
         echo 
Table::tab(1)."}\n";
         echo 
'</script>';
     }     
}

?>
y de aca lo estoy implementando supuestamente en una etapa de prueba...


Código PHP:

<?
include_once("dir.php");

?>

<html>
<head>
<!--link rel="stylesheet" type="text/css" href="<?= $rel_path?>/css/main.css" /-->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Root</title>
</head>

<?

?>

<body>
<h1><?= $_SERVER['PHP_SELF'];?></h1>
<!--ancla href="<?=$rel_path."util/carpetaPrueba/index.php"?>">CarpetaPrueba.php</ancla-->
<br/>
<br/>
<br/>
<br/>
<div class="codigo">

    <h3>SUPER CODIGO</h3>
<?


$tabla 
= new Table();
$tabla->setNombre("Tablita");
// $tabla->nombre = "Tablita";
$tabla->cantidad 10;
$campos = array('Id','Nombre','Apellido','Vis','Elim');

$tabla->campos $campos;


$tabla->begin();


?>



<br/>
<br />
<br />
<hr />
</div>
</body>
</html>
bueno veran uds. que seguro cometo errores de sintaxis o conceptos, por lo que logicamente no anda...

nisiquiera me escribe el nombre de la tabla cuando hago $tabla->begin();...

antes los campos de la tabla estaban como var $nombre, pero ahora estan como public $nombre, pero ni asi los puedo usar. Incluso probe con usar dentro de las funciones referencias del tipo $this->nombre, pero evidentemente estoy meando fuera del tarro.
Obviamente no esta terminado y menos la parte de la function javascript().

Muchas gracias por su ayuda.
  #11 (permalink)  
Antiguo 30/11/2006, 20:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
prueba un var_dump( $tabla ); para que veas que si es una instancia del objeto, aunque para mi el error se debe a que ya en la nueva version de PHP (5+) ya no puedes usar <? codigo ?> tienes que usar <?php codigo ?>
  #12 (permalink)  
Antiguo 30/11/2006, 21:09
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Exclamación



Gracias GatorV por tu respuesta... muy util var_dump()!!!
Al final probando y cambiando la forma de llamar a las variables y cosas encontre una forma que ande. Dentro de cada función hice referencia a las variables como

Código PHP:
class algo{
private 
$nombre;

public function 
unaFuncion()
{
     echo 
$this->nombre;
}

Hay alguna otra forma de referenciar sin tener que poner el $this-> ???

Gracias nuevamente.
  #13 (permalink)  
Antiguo 01/12/2006, 00:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Lamentablemente no, para referirte a una propiedad de la clase, ya sea publica o privada, necesitas usar $this, si es una propiedad estatica, usas self::.
  #14 (permalink)  
Antiguo 04/12/2006, 22:11
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Información

Gracias GatorV nuevamente!!!

Me gustaria saber como puedo hacer para compartir mi codigo con uds
de una forma mas eficiente (que con los (php) (/php)), con el fin de seguir aprendiendo y recibiendo vuestros consejos y criticas, y si a alguno le sirven mis ideas bienvenido sea!!.

por ahora lo unico que puedo hacer es subir la ultima version de lo que estoy haciendo en googlepages, y como tengo menos de 30 posts y no puedo compartir urls, la van a tener que armar vosotros si estais interesados en un rar con las clases y archivos:

Código PHP:

$url 
"roschereric-googlepages-com/PruebaObjetos.rar";
function 
getUrl($url)
{
     return 
str_ireplace('-','.',$url);
}

header('Location: '.getUrl($url)); 
Lo que hay en este rar es un conjunto de archivos dentro de carpetas, donde lo mas importante es /src/ donde estan las clases, y el fichero /index.php.
Ademas el dump de la base de datos esta en /db/some.sql, y el "gestor de conexiones" por si lo tienen que modificar es una clase con un metodo static en Connection.php.

En lo que me estoy trabando ahora es en que estoy queriendo organizar las clases en carpetas dentro de /src y quiero que las cargue el autoload.
Lo que estaba intentando es lo siguiente (x si no quieren descargar 80kb)

Código PHP:

$src 
$rel_path."src/";

/*.........
*/

function __autoload($class_name) {
    global 
$src;
    
    
$pos substr_count($class_name,".");
    
    if (
$pos>0)
    {
        
$path explode('.',$class_name);
        
$class_name implode('/',$path);
    }
    
    require_once 
$src.$class_name '.php';
    
// Verificar si la sentencia include declara la clase
    
if (!class_exists($class_namefalse)) {
        
trigger_error("No es posible cargar la clase: ".$class_nameE_USER_WARNING);
    }    

ahora lo cambie al if().. x
Código PHP:
str_ireplace('.','/',$class_name); 
pero es lo mismo, el problema esta al tratar de cargar la clase, que obviamente no se debe poder de esta forma:

Código PHP:
$select = new Form.Select(); 
lo unico que le llega es Form al autoload, lo que trata de cargar Form.php de la carpeta /srcque es una clase abstracta (y en desarrollo ).
Lo que trato de hacer es cargar la clase Select que estaria en /src/Form/Select.php.

Muchas gracias por sus consejos.
  #15 (permalink)  
Antiguo 05/12/2006, 07:31
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
http://roschereric.googlepages.com/PruebaObjetos.rar

:D
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #16 (permalink)  
Antiguo 05/12/2006, 08:21
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Uno de mis secretillos es cuando tienes que depurar en algun array (casi siempre por desgracia) puede ser muy tedioso seguir un var_dump.

Así que te recomiendo utilizar esto:

Código PHP:
echo "<pre>";
echo 
print_r($nombreVariable);
echo 
"</pre>"; exit; 

donde $nombreVariable es el array que quieras depurar.
  #17 (permalink)  
Antiguo 05/12/2006, 12:43
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Exclamación

Gracias Fridureiks

Al probar tratar de instanciar

Código PHP:
$select = new Form.Select(); 
haciendo referencia a una clase en /src/Form/Select.php y con el consejo de Casuis, remplace el codigo un poquito para ver que viene en el autoload...

Código PHP:
function __autoload($class_name) {
    global 
$src;
    
    
//$class_name = str_ireplace('.','/',$class_name);

        
$path explode('.',$class_name);
        echo 
'<pre>';
        echo 
print_r($path);
        echo 
"</pre>";
        
$class_name implode('/',$path);
        
    require_once 
$src.$class_name '.php';

    
// Verificar si la sentencia include declara la clase

    
if (!class_exists($class_namefalse)) {
        
trigger_error("No es posible cargar la clase: ".$class_nameE_USER_WARNING);
    }    

Lo que logre que imprima print_r es:

Código:
Array
(
    [0] => Form
)
1
O sea que php no me levanta todo el "nombre" de la clase como un string "Form.Select"() sino solo hasta el punto... asique voy a probar con Form_Select y les cuento...
  #18 (permalink)  
Antiguo 05/12/2006, 15:08
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Información

Cambiando autoload para que remplace _ x / por lo menos anda
el explode xq le llega el nombre completo de la clase.

Código PHP:
function __autoload($class_name) {
    global 
$src;
    
    
//$class_name = str_ireplace('.','/',$class_name);

    
    
    
        
$path explode('_',$class_name);
        echo 
'<pre>';
        echo 
print_r($path);
        echo 
"</pre>";
        
$class_name implode('/',$path);
     
    
    echo 
$src.$class_name .'.php';
    
    require_once 
$src.$class_name .'.php';
    
// Verificar si la sentencia include declara la clase
    
if (!class_exists($class_namefalse)) {
        
trigger_error("No es posible cargar la clase: ".$class_nameE_USER_WARNING);
    }    

Asi como esta genera

Código:
Array
(
    [0] => Form
    [1] => Select
)
1

./src/Form/Select.php
cuando hago un

Código PHP:
$select = new Form_Select(); 
pero para que no provoque un error tengo que llamar a la clase que esta dentro del archivo /src/Form/Select.php
como

Código PHP:
class Form_Select
{


veremos como sigue... si alguno conoce alguna forma de organizar las clases de manera parecida pero
con un poco mas de inteligencia se agradece...
  #19 (permalink)  
Antiguo 05/12/2006, 15:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Desgraciadamente te haz topado con uno de los "limites" de PHP, o mas bien de la syntaxis, ya que las clases no pueden tener el signo de ".", ya que esta reservado para el symbolo de concatenacion de strings.

El otro problema que presentas es que para PHP, cuando tu llamas a una clase, ej:
miClase.php
Código PHP:
class miClase {} 
test.php
Código PHP:
$obj = new miClase(); 
Si corremos test directamente obtenemos un error ya que no esta definida la clase miClase, ahora si agregamos un autoload:
Código PHP:
function __autoload$clase ) {
     require_once( 
$clase ".php" );

Ya va a funcionar, esto es porque cuando PHP encuentra un constructor de una clase, si no esta definida detiene momentaneamente la ejecucion, busca __autoload(), le pasa como parametro un string con el nombre de la clase que busca y espera que autoload incluya el archivo con esa clase, luego trata de volver a crear el objeto, si falla esta vez, entonces se cuelga y manda error.

Asi que no puedes crear una clase asi como tu lo pides:
Código PHP:
class Select {}
$select = new Form_Select(); 
Porque es un error ya que no existe la clase Form_Select.
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 14:00.