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

Definir comportamiento a objeto stdClass

Estas en el tema de Definir comportamiento a objeto stdClass en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estimados , Tengo la siguiente duda , estoy desarollando un intento de ORM y me encuentro en la encrucijada de que necesito hacer algo como ...
  #1 (permalink)  
Antiguo 02/10/2009, 20:40
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 16 años
Puntos: 14
Definir comportamiento a objeto stdClass

Estimados ,

Tengo la siguiente duda , estoy desarollando un intento de ORM y me encuentro en la encrucijada de que necesito hacer algo como lo siguiente:

Código PHP:
  $Base->getPersona(4)->delete(); 
Con lo cual deberia eliminarse la persona 4 , lo que hago es con __call proceso el primer comportamiento (getPersona) y retorna un objeto con los datos de la consulta sql , supongamos nombre , auto , color , pero ahora bien , viene el problema , como puedo adicionar un comportamiento a un objeto que creo en php? , supongamos lo siguiente.

Código PHP:
<?php

$Objeto 
= new Stdclass();
$objeto->atributo=5;

?>
y a ese objeto es decir a objeto desea agregarle un comportamiento y poder acceder del siguiente modo:

Código PHP:
$objeto->eliminar(); 
es posible realizar lo que solicito? existe algun metodo? ya prome con get , set , call y no se me ocurre modo , la unica solución que encuentro es que un atributo del objeto ejecute a un metodo de la misma clase , pero me quedaria una cadena de acceso larga como esta-

Código PHP:
$Base->getPersona(4)->delete->delete(); 
se les ocurre alguna solución?.

Desde ya gracias!
  #2 (permalink)  
Antiguo 04/10/2009, 08:22
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 7 meses
Puntos: 32
Respuesta: Definir comportamiento a objeto stdClass

Que tal Jonatanc

Veamos si entendí, la pregunta es "¿cómo crear métodos dinámicamente para una clase que no existe?"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 04/10/2009, 13:17
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: Definir comportamiento a objeto stdClass

Lo que pasa es que stdClass es un objeto básico, no tiene otras propiedades es se podría decir que la "base", lo que tu tienes que hacer para poder agregarle tu método delete() o eliminar() es que getPersona te devuelva un objeto del tipo persona, que tenga ese método ya programado, y así puedes usar lo que quieres, por ejemplo en Zend Framework sería así:
Código PHP:
Ver original
  1. class Personas extends Zend_Db_Table_Abstract
  2. {
  3.         public function getPersona($nPersonaId)
  4.         {
  5.                 return $this->find($nPersonaId)->current();
  6.         }
  7. }
  8.  
  9. $personas = new Personas();
  10. $personas->getPersona(4)->delete();

En Zend automaticamente te regresa un objeto del tipo Zend_Db_Table_Row_Abstract, el cual tiene un método delete() y que aparte puedes llamar a sus propiedades usando __get y __set, por ejemplo:
Código PHP:
Ver original
  1. $persona = $personas->getPersona(4);
  2. echo $persona->nombre;

Saludos.
  #4 (permalink)  
Antiguo 04/10/2009, 20:51
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 16 años
Puntos: 14
Respuesta: Definir comportamiento a objeto stdClass

Estimados , tal cual como han dicho ustedes y mi profesor de .net , he modelado una clase Registro con los metodos para eliminar y actualizar los mismos , luego mediante mysql_fetch_object(); puede obtener los datos de la consulta y generar los atributos en la clase pasaja como parametros.

Gracias a ambos!
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 04:26.