Pergunta

O que é o melhor método para a comunicação entre Flex e PHP?

No passado, usamos AMFPHP com AS2, e funcionou muito bem para a maior parte (vantagem de AMFPHP é que ele também tem um modo JSON que pode deixá-lo perfeitamente usar o mesmo PHP remotos com frontends JavaScript ou ActionScript) .

No entanto, parece que AMFPHP não é realmente mais mantido. Então, o que as pessoas recomendam para substituí-lo? Até agora, o que eu encontrei é:

  1. Zend_Amf ( parece demasiado complexas para nós, não estamos usando a estrutura Zend outra forma)
  2. AMFPHP (houve alguns atualizado feito para suportar Flex, e parece razoavelmente estável, mas não tenho certeza sobre o apoio a longo prazo)
  3. XML (AS3 tem bom XML manipulação rotinas, mas é mais de uma dor no lado do PHP)
  4. WebORB (Eu não tenho nenhuma experiência com este)
  5. Roll-nossa-próprio usando JSON ou algum outro sistema de serialização de dados para texto (serialize () do PHP, XML, etc etc)

Na maior parte eu estou inclinado para AMFPHP, mesmo por causa das desvantagens, uma vez que é o que eu estou acostumado. Você tem algum motivo eu deveria considerar a mudança para outra coisa?

Foi útil?

Solução

Se você quer ter uma comunicação rápida e eficiente, eu recomendo ficar com um protocolo AMF em vez de um formato personalizado RESTO ou JSON.

ZendAMF não é realmente muito confuso. Assista o tutorial introdução sobre GoToAndLearn , é bastante simples.

E só assim você sabe, alguns dos desenvolvedores a partir AMFPHP mudou-se para o trabalho em ZendAMF. Assim, em certo sentido, ZendAMF é a continuação da AMFPHP.

Outras dicas

ZendAMF Boa leitura curta - http://theflashblog.com/?p=441

Para mim, este é acéfalo. O Zend Framework é um dos melhores frameworks PHP lá fora, e agora você pode conversar com clientes em Flash. Top-lo com suporte Adobe, que é um negócio feito no meu livro.

Alternativas:

WebORB para php http://www.themidnightcoders.com/products/weborb-for-php

AMFPHP http://www.amfphp.com Se você ler o url acima, você provavelmente vai saber por que isso não está no meu radar.

Eu não posso te dizer o que é melhor (porque isso é provavelmente de qualquer maneira um tanto subjetiva), mas o que posso fazer é dizer-lhe sobre um projecto recente da mina.

Uma vez que esta foi uma aplicação web muito rico, e solicitações de dados para o servidor seria frequente, eu queria ter certeza que o tamanho dos pedidos eram tão pequenos quanto possível. Este JSON escolha média como o formato.

Em seguida, becuase da natureza da aplicação e o fato de que meu flash / desenvolvedores Flex foram 1000 milhas de distância, eu precisava de uma API que era simples e sem estado. Esta última análise, levou-nos a HTTP + REST.

Assim, a camada de comunicação do meu aplicativo é um simples Zend Framework conjunto potência de recursos descansar com URIs como

user/10
review/15
location/8/reviews

Eles todos JSON retorno. Há um formato JSON comum para todos os erros, bem (as exceções são capturados e convertidos em objetos JSON) para que o cliente flash pode facilmente lidar com o fracasso.

Se você não estiver usando uma estrutura como Zend, ol regulares AMFPHP ainda é grande, se por nenhuma outra razão do que é simples. Eu acho que se você se sentir confortável com isso, por que não ir para ela? A coisa sobre o papel dessas interfaces AMF é que eles realmente não precisa fazer muito, eo que AMFPHP tem no mapeamento de classe, registros de análise em ArrayCollection, ótimo desempenho .... ainda faz bem com XML, uma vez ele fica comprimido. O navegador serviço combinado com Charles cobriu-me bem.

Eu não tenho sido capaz de fazer muito sentido de como o esforço ZendAMF relaciona-se com o AMFPHP originais. Enquanto eu posso cavar, eu só estou dizendo que, seguindo a lista de discussão AMFPHP em Nabble, lendo o blog de Wade Arnold ... não é apenas totalmente claro.

Você deve considerar o uso Zend AMF. O Zend Framework é projetado para ser uma picareta e escolheu quadro por isso é completamente OK para escolher um único componente (neste caso Zend AMF) para sua aplicação.

Zend AMF é extremamente fácil de usar. Tudo que você tem a fazer é especificar as funções / classes que você deseja expor e especificar o mapeamento de classe para suas classes de ação de script. Tudo o resto é praticamente transparente.

Este link é um screencast mostrando como usar WebORB para PHP WDMF (Data Management WebORB para Flex).

http://www.themidnightcoders.com/products/weborb-for-php/developer-den/screencasts/weborb-data-management-for-flex-and-php.html

Em todos os projetos que envolvem o Flash e PHP backend, eu trabalhei tanto com pedidos AMFPHP ou XML.

AMFPHP realmente simplifica understanting o pedido de manutenção futura, embora ela se liga a coisa toda para que a tecnologia específica e envolve alguma sobrecarga adicional no lado do servidor -. Para criar todas as classes necessárias

De acordo com XML, bem, o que você ganha aqui estão webservices em REST padrão e isso não depende do Flash (você pode extrair dados de um aplicativo de desktop, bem como, por exemplo, enquanto usando JSON ou qualquer outra tecnologia dependente de navegadores não permitem isso).

Se você quer 100% "apoio" futuro, então eu recomendo que não precisa de nenhum apoio em tudo:. XML

XML em PHP pode ser muito mais simples com SimpleXML .

Eu tinha acabado de usar JSON como seus retornos para chamadas simples contra o seu api PHP.

Eu definitivamente ir para WebORB. Usei-o com .NET em um trabalho anterior eu tinha e foi uma alegria para código com. Sua facilidade de uso e seu console de gerenciamento bem pensado fazê-lo muito rápido para aprender, e sua documentação é muito completo; Eu sei que é tentador ficar com AMF só porque é o que você já sabe, mas eu acredito que vale a pena dar WebORB uma tentativa.

Dê uma olhada nesta screencast para a geração de Actionscript com PHP, é muito extravagante.

Felicidades.

PHP tem uma função muito bom serialize(), portanto, para um projeto recente que fiz (altas pontuações para um jogo), eu usei de Sephiroth Serializer . Ele faz a serialização do lado de flash tão fácil como no PHP. Serializer também lida com tipos de dados (ao contrário json / xml) como AMF.

Desvantagem -. Não é tão compacto como AMF, mas que de compressão nada gzip não pode lidar com

AMF tem uma vantagem muito situacional. Se você está procurando para transferir grande e complexo objeto, por todos os meios ir com AMF. Mas pouco faz as pessoas sabem sobre a sobrecarga que AMF carrega quando você está transferindo pequenos objetos. Se você está transferindo apenas um objeto com 3 propriedades, usando AMF pode triplicar o seu tamanho de carga útil.

Em uma nota lateral, eu sou um grande defensor da arquitetura RESTful. Desde JSON e AMF ficam apenas representações, você pode construir um serviço REST que aceita ambos, e negociar a representação real com o seu cliente em tempo de execução.

"Se você quer ter rápido e comunicação eficiente, eu recomendo ficar com um protocolo AMF"

E se você quiser um rápido, eficiente e comunicação generalizada, ir com JSON. Em seguida, o serviço de web estará disponível para Flash, Ajax ou solicitações HTTP regulares.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top