Question

Quelle est la meilleure méthode de communication entre Flex et PHP?

Auparavant, nous utilisions AMFPHP avec AS2 et cela fonctionnait très bien (l’avantage d’AMFPHP est qu’il dispose également d’un mode JSON qui vous permet d’utiliser de manière transparente le même code PHP distant avec des interfaces JavaScript ou Actionscript). .

Cependant, il semble que l’AMFPHP n’est plus vraiment maintenu. Alors, qu'est-ce que les gens recommandent pour le remplacer? Jusqu'à présent, ce que j'ai trouvé est:

  1. Zend_AMF ( semble trop complexe pour nous, nous n’utilisons pas le framework Zend autrement)
  2. AMFPHP (certaines mises à jour ont été apportées pour prendre en charge Flex, et il semble que assez stable, mais pas certain du support à long terme)
  3. XML (AS3 a de bonnes routines de traitement XML, mais c'est plus pénible du côté de PHP)
  4. WebORB (je n'ai aucune expérience avec ceci)
  5. Faites votre propre en utilisant JSON ou un autre système de sérialisation de données en texte (serialize () de PHP, XML, etc.)

Je suis principalement orienté vers l’AMFPHP, même à cause des inconvénients, car c’est ce à quoi je suis habitué. Une raison pour laquelle je devrais envisager de passer à autre chose?

Était-ce utile?

La solution

Si vous souhaitez une communication rapide et efficace, je vous recommande vivement de vous en tenir au protocole AMF . au lieu d’un format personnalisé REST ou JSON.

ZendAMF n’est pas vraiment déroutant. Regardez le didacticiel d’introduction sur GotoAndLearn , c'est assez simple.

Et pour votre information, certains développeurs AMFPHP est passé au travail sur ZendAMF. En un sens, ZendAMF est la continuation de l’AMFPHP.

Autres conseils

ZendAMF Bonne lecture - http://theflashblog.com/?p=441

Pour moi, cela ne va pas de soi. Le framework Zend est l'un des meilleurs frameworks php, et vous pouvez maintenant parler aux clients Flash. Complétez le tout avec l’assistance Adobe, c’est déjà chose faite dans mon livre.

Alternatives:

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

AMFPHP http://www.amfphp.com Si vous lisez l'URL ci-dessus, vous saurez probablement pourquoi cela n'apparaît plus dans mon radar.

Je ne peux pas vous dire ce qu'il y a de mieux (car c'est probablement un peu subjectif de toute façon), mais ce que je peux faire, c'est vous parler d'un de mes projets récents.

Comme il s'agissait d'une application Web très riche et que les demandes de données au serveur étaient fréquentes, je voulais m'assurer que la taille des demandes était aussi petite que possible. Cela signifie choisir le format JSON.

Ensuite, en raison de la nature de l’application et du fait que mes développeurs flash / flex étaient à 1 000 kilomètres, j’avais besoin d’une API simple et sans état. Cela nous a finalement conduit à HTTP + REST.

La couche de communication de mon application est donc un simple ensemble de ressources REST optimisées par Zend Framework, avec des URI tels que

.
user/10
review/15
location/8/reviews

Ils renvoient tous JSON. Il existe également un format JSON commun pour toutes les erreurs (les exceptions sont interceptées et converties en objets JSON) afin que le client Flash puisse facilement gérer les échecs.

Si vous n’utilisez pas un framework tel que Zend, le standard AMFPHP est tout de même génial, ne serait-ce que pour une raison simple. Je pense que si vous vous sentez à l'aise avec ça, pourquoi ne pas y aller? La particularité du rôle de ces interfaces AMF est qu’elles n’ont vraiment pas besoin de trop en faire, et ce que AMFPHP a dans le mappage de classes, l’analyse de jeux d’enregistrements dans ArrayCollection, des performances exceptionnelles…. ça se compresse. Le navigateur de service combiné à Charles m'a également couvert.

Je ne suis pas parvenu à comprendre le lien entre l’effort ZendAMF et l’AMFPHP original. Même si je peux creuser, je dis simplement qu'en suivant la liste de diffusion de l'AMFPHP sur Nabble, lire le blog de Wade Arnold ... ce n'est tout simplement pas tout à fait clair.

Vous devriez envisager d’utiliser Zend AMF. Le Zend Framework est conçu pour être un framework de choix et de choix, il est donc tout à fait correct de choisir un seul composant (dans ce cas, Zend AMF) pour votre application.

Zend AMF est extrêmement facile à utiliser. Tout ce que vous avez à faire est de spécifier les fonctions / classes que vous souhaitez exposer et de spécifier le mappage de classe avec vos classes d'action-script. Tout le reste est à peu près transparent.

Ce lien est un extrait vidéo montrant comment utiliser WebORB pour PHP WDMF (gestion de données WebORB pour Flex).

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

Dans tous les projets impliquant le backend Flash et PHP, j'ai travaillé avec des requêtes AMFPHP ou XML.

AMFPHP simplifie vraiment la compréhension de l'application pour la maintenance future, bien que tout soit lié à cette technologie spécifique et implique une surcharge supplémentaire du côté serveur - pour créer toutes les classes nécessaires.

Selon XML, vous obtenez ici des services Web REST standard, qui ne dépendent pas de Flash (vous pouvez également extraire des données d'une application de bureau, par exemple, alors que JSON ou toute autre technologie dépend des navigateurs. ne permet pas cela).

Si vous voulez un "support" à 100% futur, je vous recommanderais alors ce qui ne nécessite aucun support: XML.

XML sur PHP peut être beaucoup plus simple avec SimpleXML .

Je n'utiliserais que JSON comme retour pour les appels simples effectués contre votre API PHP.

Je choisirais certainement WebORB. Je l'ai utilisé avec .NET dans un travail précédent et c'était un plaisir de coder avec. Sa facilité d'utilisation et sa console de gestion bien pensée le rendent très rapide à apprendre et sa documentation est très complète. Je sais que c’est tentant de rester avec l’AMF simplement parce que c’est ce que vous savez déjà, mais je pense que cela vaut la peine d’essayer WebORB.

Jetez un oeil à cette screencast pour la génération Actionscript avec PHP, c'est assez chic.

A bientôt.

PHP a une très bonne fonction serialize () , donc pour un projet récent (scores élevés pour un jeu), j’ai utilisé la Serializer . Cela rend la sérialisation du côté de Flash presque aussi facile qu'en PHP. Serializer traite également des types de données (contrairement à json / xml) comme AMF.

Inconvénient: il n’est pas aussi compact que AMF, mais la compression gzip ne peut pas la gérer.

L’AMF a un joli avantage situationnel. Si vous souhaitez transférer un objet volumineux et complexe, partez pour l’AMF. Mais peu de gens connaissent les frais généraux que l’AMF supporte lorsque vous transférez de petits objets. Si vous ne transférez qu'un objet avec 3 propriétés, utiliser AMF peut tripler la taille de votre charge utile.

Par ailleurs, je suis un ardent défenseur de l’architecture RESTful. Étant donné que JSON et AMF ne sont que des représentations, vous pouvez créer un service REST acceptant les deux et négocier la représentation réelle avec votre client au moment de l'exécution.

"Si vous souhaitez une communication rapide et efficace, je vous recommande vivement de vous en tenir à un protocole AMF"

.

Et si vous souhaitez une communication rapide, efficace et généralisée, optez pour JSON. Ensuite, votre service Web sera disponible pour les requêtes http flash, ajax ou habituelles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top