Domanda

Qual è il metodo migliore per la comunicazione tra Flex e PHP?

In passato abbiamo usato AMFPHP con AS2, e ha funzionato alla grande (il vantaggio di AMFPHP è che ha anche una modalità JSON che ti permette di usare senza soluzione di continuità lo stesso PHP remoto con frontend Javascript o Actionscript) .

Tuttavia, sembra che AMFPHP non sia più mantenuto. Quindi cosa consigliano le persone di sostituirlo? Finora, quello che ho trovato è:

  1. Zend_AMF ( sembra troppo complesso per noi, altrimenti non useremo il framework Zend)
  2. AMFPHP (alcuni sono stati aggiornati per supportare Flex, e sembra abbastanza stabile, ma non sicuro sul supporto a lungo termine)
  3. XML (AS3 ha buone routine di gestione XML, ma è più una seccatura dal lato PHP)
  4. WebORB (non ho esperienza con questo)
  5. Personalizza usando JSON o altri sistemi di serializzazione da dati a testo (serializzazione di php (), XML, ecc. ecc.)

Principalmente mi sto orientando verso AMFPHP, anche a causa degli aspetti negativi, poiché è quello a cui sono abituato. Qualche motivo per cui dovrei considerare di passare a qualcos'altro?

È stato utile?

Soluzione

Se si desidera avere una comunicazione rapida ed efficiente, consiglio vivamente di attenersi a un protocollo AMF anziché un formato personalizzato REST o JSON.

ZendAMF in realtà non è molto confuso. Guarda il tutorial introduttivo su GotoAndLearn , è abbastanza semplice.

E proprio per questo sai, alcuni degli sviluppatori da AMFPHP si è trasferito a lavorare su ZendAMF. Quindi, in un certo senso, ZendAMF è la continuazione di AMFPHP.

Altri suggerimenti

ZendAMF Buona lettura breve - http://theflashblog.com/?p=441

Per me questo non è un gioco da ragazzi. Il framework Zend è uno dei migliori framework php in circolazione e ora puoi parlare con i client Flash. Completalo con il supporto di Adobe, questo è un affare fatto nel mio libro.

Alternative:

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

AMFPHP http://www.amfphp.com Se leggi l'URL sopra, probabilmente saprai perché questo non è più sul mio radar.

Non posso dirti cosa è meglio (perché probabilmente è in qualche modo soggettivo), ma quello che posso fare è parlarti di un mio recente progetto.

Poiché si trattava di un'app Web molto ricca e le richieste di dati al server sarebbero frequenti, volevo assicurarmi che le dimensioni delle richieste fossero le più piccole possibili. Questo significa scegliere JSON come formato.

Successivamente, a causa della natura dell'applicazione e del fatto che i miei sviluppatori flash / flex fossero a 1000 miglia di distanza, avevo bisogno di un'API semplice e senza stato. Questo alla fine ci ha portato a HTTP + REST.

Quindi, il livello di comunicazione della mia app è un semplice set di risorse REST basate su Zend Framework con URI come

user/10
review/15
location/8/reviews

Restituiscono tutti JSON. Esiste anche un formato JSON comune per tutti gli errori (le eccezioni vengono intrappolate e convertite in oggetti JSON) in modo che il client flash possa gestire facilmente gli errori.

Se non stai usando un framework come Zend, il normale AMFPHP è comunque ottimo, se non altro per il semplice motivo. Penso che se ti senti a tuo agio con esso, perché non provarci? La cosa sul ruolo di queste interfacce AMF è che non hanno davvero bisogno di fare troppo, e ciò che AMFPHP ha nella mappatura di classe, analisi dei recordset in ArrayCollection, grandi prestazioni .... funziona anche bene con XML, dal momento che viene compresso. Anche il browser del servizio combinato con Charles mi ha coperto.

Non sono stato in grado di dare un senso al modo in cui lo sforzo di ZendAMF si collega all'AMFPHP originale. Mentre riesco a scavare, sto solo dicendo che nel seguire la mailing list AMFPHP su Nabble, leggendo il blog di Wade Arnold ... non è del tutto chiaro.

Dovresti considerare l'utilizzo di Zend AMF. Zend Framework è progettato per essere un framework pick and scelti, quindi è del tutto corretto scegliere un singolo componente (in questo caso Zend AMF) per la tua applicazione.

Zend AMF è estremamente facile da usare. Tutto quello che devi fare è specificare le funzioni / classi che vuoi esporre e specificare il mapping delle classi alle tue classi di action-script. Tutto il resto è praticamente trasparente.

Questo link è uno screencast che mostra come utilizzare WebORB per PHP WDMF (WebORB Data Management for Flex).

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

In tutti i progetti che coinvolgono backend Flash e PHP, ho lavorato con richieste AMFPHP o XML.

AMFPHP semplifica davvero la comprensione dell'applicazione per la manutenzione futura, sebbene leghi il tutto a quella specifica tecnologia e comporti un sovraccarico aggiuntivo sul lato server - per creare tutte le classi necessarie.

Come per XML, beh, ciò che guadagni qui sono servizi web REST standard e non dipende da Flash (potresti anche estrarre dati da un'app desktop, ad esempio, mentre usando JSON o qualsiasi altra tecnologia dipendente dai browser non permetterlo).

Se desideri il futuro "supporto" al 100%, allora ti consiglierei ciò che non ha bisogno di alcun supporto: XML.

XML su PHP può essere molto più semplice con SimpleXML .

Utilizzerei semplicemente JSON come ritorni per chiamate semplici su API PHP.

Preferirei sicuramente WebORB. L'ho usato con .NET in un precedente lavoro che ho svolto ed è stato un piacere programmare. La sua facilità d'uso e la sua ben gestita console di gestione lo rendono molto veloce da imparare e la sua documentazione è molto completa; So che è allettante stare con AMF solo perché è quello che già sai, ma credo che valga la pena provare WebORB.

Dai un'occhiata a questo screencast per la generazione di Actionscript con PHP, è piuttosto elegante.

Saluti.

PHP ha una funzione serialize () abbastanza buona, quindi per un progetto recente che ho fatto (punteggi alti per un gioco), ho usato Sephiroth Serializzatore . Rende la serializzazione dalla parte di Flash quasi facile come in PHP. Il serializzatore si occupa anche di tipi di dati (a differenza di json / xml) come AMF.

Unico inconveniente: non è compatto come AMF, ma non è nulla che la compressione gzip non possa gestire.

AMF ha un vantaggio piuttosto situazionale. Se stai cercando di trasferire oggetti grandi e complessi, vai con AMF. Ma le persone non sanno delle spese generali che AMF porta quando trasferisci piccoli oggetti. Se trasferisci solo un oggetto con 3 proprietà, l'utilizzo di AMF può triplicare la dimensione del tuo payload.

In una nota a margine, sono un grande sostenitore dell'architettura RESTful. Poiché JSON e AMF sono entrambi solo rappresentazioni, è possibile creare un servizio REST che accetta entrambi e negoziare la rappresentazione effettiva con il proprio client in fase di esecuzione.

" Se si desidera avere una comunicazione rapida ed efficiente, consiglio vivamente di attenersi a un protocollo AMF "

E se vuoi una comunicazione veloce, efficiente e generalizzata, vai con json. Quindi il tuo servizio web sarà disponibile per flash, ajax o richieste HTTP regolari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top