Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2011, 12:19
Avatar de Pedro_valencia
Pedro_valencia
 
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 17 años
Puntos: 6
Duda con clases y SimpleXML

Buenas, tengo un par de dudas, aquí os las dejo a ver si me sabéis responder:

  • ¿Cuándo extender una clase?
Es decir, ¿debo extender una clase siempre que necesite algún método de la otra? o ¿sólo si guardan relación?

  • ¿Cómo extender una clase con varias?
Hay veces que necesito los métodos de varias clases dentro de otra clase, ¿cómo hago para extender la clase A, con los métodos de la clase B y la clase C.

  • ¿Cómo inserto un nuevo item en un XML que he cargado?
Es decir, tengo una clase llama Artistas, en esa clase hay una función llamada getImage() que consulta la API de Bing para devolver una imagen.
Lo devuelve mediante json, yo uso json_decode y luego recorro los elementos y la función lo devuelve:
Código PHP:
return $this->img->SearchResponse->Image->Result 
Luego tan sólo debo hacer esto:

Código PHP:
$img $o->getImage();
echo 
$img[0]->MediaUrl
Y muestra la URL correspondiente al item [0].

Bien, sigamos, tengo otra función llamada getData() que devuelve los datos de otra API, esta los devuelve mediante xml y hago esto:

Código PHP:
$this->xml simplexml_load_file("xxx");
return 
$this->xml->artist
Como veis recorro un elemento y avanzo a artist.

Bien, ahora el asunto principal, lo que quiero es insertar un item ahí, es decir,
si haces un var_dump($this->xml->artist); te devuelve el XML con los items, por ejemplo:

object(stdClass)[7]
public 'Title' => string 'Foo Fighters | Música y Artistas' (length=33)
public 'MediaUrl' => string 'http://www.musicaartistas.com/wp-content/uploads/data/f/foo-fighters/foo-fighters.jpg' (length=85)
public 'Url' => string 'http://www.musicaartistas.com/musica-artistas/foo-fighters' (length=58)
public 'DisplayUrl' => string 'http://www.musicaartistas.com/musica-artistas/foo-fighters' (length=58)
public 'Width' => int 575
public 'Height' => int 450
public 'FileSize' => int 70129

Yo quiero añadir un item con la ruta de la imagen, es decir, algo como:

public 'image' => string 'RutaDeLaImagen' (length=58)

Y he probado algunas cosas pero no han funcionado, ¿tenéis alguna idea?

Un saludo y gracias!
__________________
Si te ha servido mi post, ¡dame Karma, es gratis!

- ¿Qué es el éxito? Lo diferente.