Foros del Web » Programando para Internet » PHP »

splobjectstorage o mi clase ("arrObjetos")??? aqui se las dejo a quien le interese...

Estas en el tema de splobjectstorage o mi clase ("arrObjetos")??? aqui se las dejo a quien le interese... en el foro de PHP en Foros del Web. Hola splObjectStorage me dio muchos problemas debido a esto decidi hacer mi propio objeto para almacenar otros objetos :) aqui se las dejo lo mejor ...
  #1 (permalink)  
Antiguo 16/01/2011, 05:04
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Información splobjectstorage o mi clase ("arrObjetos")??? aqui se las dejo a quien le interese...

Hola splObjectStorage me dio muchos problemas debido a esto decidi hacer mi propio objeto para almacenar otros objetos :) aqui se las dejo lo mejor es que todo las funciones van en español algunas dudas por favor pregunten...

Código PHP:
/*codigo desarrollado por gomosft 2011 */
class arrObjetos{
    private 
$obj= array();
    private 
$tmp;
    private 
$flujo;
    var 
$cab;
    function 
arrObjetos(){
        
$this->tmp=-1;
    }
    
    public function 
cuantos(){
     return 
count($this->obj);
    }
    
    public function 
agrega($obj){
        if(
is_object($obj)){
            
$this->tmp++;
            
$this->obj[]=$obj;
            
$this->cab=$this->obj[$this->tmp];
            
$this->flujo=$this->tmp;
            return;
        }
        echo 
"el parametro recibido no es un objeto";
    }

    public function  
ant(){
        if((
$this->flujo-1) > 0){
        
$this->cab=$this->obj[($this->tmp-1)];    
        
$this->flujo=$this->flujo-1;
        return 
$this->obj[$this->flujo];
        }else{ 
$this->flujo=0;$this->cab=$this->obj[$this->flujo]; return $this->obj[$this->flujo];} 
        
        echo 
"indice Fuera de limites ".$this->tmp--;
    }
    
    public function  
sig(){
        
        if(
$this->tmp++ < count($this->obj)-1){
        
$this->flujo=$this->flujo++;    
        
$this->cab=$this->obj[($this->flujo)];            
        return 
$this->obj[$this->flujo];}
        else{
$this->flujo=count($this->obj)-1$this->cab=$this->obj[$this->flujo]; return($this->obj[$this->flujo]);}
                           
        echo 
"indice Fuera de limites ".$this->tmp++;
    }
    
    public function 
fin(){
        
$this->flujo=count($this->obj)-1;
        
$this->cab=$this->obj[$this->flujo];
    }
    
    public function 
ini(){
        
$this->flujo=0;
        
$this->cab=$this->obj[$this->flujo];
    }
    
    public function 
lotengo($obj){
      
$tmp=$this->flujo;
      
$this->flujo=0;
      if(!
is_object($obj)){
        echo(
"el parametro recibido no es un objeto");
        return;
      }
      
$cab=$this->obj[$this->flujo];
       while(
$this->sig() != $cab){
         if(
$cab==$obj)
           return 
true;
        
$cab=$this->sig();
      }
      if(
$cab==$obj){
        return 
true;
      }
    
$this->flujo=$tmp;    
  return 
false;
 }
}

class 
testear{
 var 
titulo;
   function 
testear($ti){
      
$this->titulo=$ti;
    }
}

/*implementando la clase instanciamos 2 objeto tipo testear*/
$tes=new testear("hola");
$tes1=new testear("chao");

/*instanciamos objeto de tipo arrObjetos*/
$arrobj=new arrObjetos();

/*agregamos los objetos de tipo testear*/
$arrobj->agregar($tes);
$arrobj->agregar($tes1);

/*la variable cab por defecto esta apuntando al ultimo elemto pero podemos cambiar su posicion con las funciones o metodos 
ini() nos lleva al primer objeto de la lista 
fin() nos lleva al ultimo elemento de la lista
sig() nos lleva al objeto proximo de cab en la lista
ant() nos lleva al objeto anterior de cab en la lista

echo $arrobj->cab->titulo;

/*coloco a prueba un metodo*/
 
$arrobj->ant();

echo 
$arrobj->cab->titulo;

/* implementamos el metodo lotengo() que busca un objeto en la lista */

if($arrobj->lotengo($tes))
 echo (
"efectivamente tengo este objeto en mi composicion"); 
seguire mejorando la clase proximamente vendrá el metodo eliminar y varios bye y saludes a todos.....
  #2 (permalink)  
Antiguo 16/01/2011, 05:11
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: splobjectstorage o mi clase ("arrObjetos")??? aqui se las dejo a quien le

Podrias utilizar ArrayObject, igual te sugiero que en tu clase implementes las interfaces correspondientes, IteratorAggregate, ArrayAccess y Countable.

Saludos.
  #3 (permalink)  
Antiguo 16/01/2011, 06:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: splobjectstorage o mi clase ("arrObjetos")??? aqui se las dejo a quien le

Cita:
Iniciado por masterpuppet Ver Mensaje
Podrias utilizar [URL="http://www.php.net/manual/en/class.arrayobject.php"]ArrayObject[/URL], igual te sugiero que en tu clase implementes las interfaces correspondientes, [URL="http://es.php.net/manual/en/class.iteratoraggregate.php"]IteratorAggregate[/URL], [URL="http://es.php.net/manual/en/class.arrayaccess.php"]ArrayAccess[/URL] y [URL="http://es.php.net/manual/en/class.countable.php"]Countable[/URL].

Saludos.
Gracias tendre en cuenta tu sugerencia...

Etiquetas: objetos, arreglos, vectores
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:02.