Bom Dia Pessoal,

Estou usando (passando raiva) com o AMFPHP versão 1.9, configurei o classpath e 
agora consigo passar objetos do Flex pro PHP e vice-versa. Meu problema é o 
seguinte, eu tenho uma variável do tipo float e outra do tipo DateTime no PHP. 
Como fazer o AMFPHP serializar e deserializar esse tipo de objeto?

Eu dei uma olhada nos arquivos do SabreAMF e vi que ele conseguia passar esses 
dois tipos, como o AMFPHP eu terei que programar ou já tem implementado?

Bons códigos,
-Daniel Negri



Códigos de Exemplo:

<?php

    class Produto {
        public codigo;
        public titulo;
        public dataEntrada;
        public valor;
    }

?>


package negocio
{
  
 [Bindable]
 [RemoteClass(alias="negocio.Produto")]
 public class Produto
 {
  public var codigo:int;  
  public var titulo:String;    
  public var dataEntrada:Date;  
  public var valor:Number;
    
  public function Produto() {
    this.codigo = 0;
    this.titulo = "";
    this.dataEntrada = new Date();
    this.valor = 0;   
  }
 }
}


SabreAMF

        /**
         * readDate 
         * 
         * @return int 
         */
        public function readDate() {
            $dateref = $this->readInt();
            if (($dateref & 0x01) == 0) {
                $dateref = $dateref >> 1;
                if ($dateref>=count($this->storedObjects)) {
                    throw new Exception('Undefined date reference: ' . 
$dateref);
                    return false;
                }
                return $this->storedObjects[$dateref];
            }

            $timestamp = floor($this->stream->readDouble() / 1000);

            $dateTime = new DateTime('@' . $timestamp);
            
            $this->storedObjects[] = $dateTime;
            return $dateTime;
        }


        /**
         * Writes a date object 
         * 
         * @param DateTime $data 
         * @return void
         */
        public function writeDate(DateTime $data) {

            // We're always sending actual date objects, never references
            $this->writeInt(0x01);
            $this->stream->writeDouble($data->format('U')*1000);

        }



   




--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a