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.