Вопрос

Каков наилучший метод взаимодействия между Flex и PHP?

В прошлом мы использовали AMFPHP с AS2, и по большей части он отлично работал (преимущество AMFPHP в том, что он также имеет режим JSON, который позволяет вам беспрепятственно использовать тот же удаленный PHP с интерфейсами Javascript или Actionscript).

Однако, похоже, что AMFPHP на самом деле больше не поддерживается.Итак, что же люди рекомендуют для его замены?Пока что то, что я нашел, это:

  1. Zend_AMF ( Зенд_АМФ ) (выглядит слишком сложным для нас, в противном случае мы не используем Zend framework)
  2. AMFPHP (были сделаны некоторые обновления для поддержки Flex, и они кажутся довольно стабильными, но не уверены в долгосрочной поддержке)
  3. XML (В AS3 есть хорошие процедуры обработки XML, но это больше затрудняет работу с PHP)
  4. Веб - сайт (У меня нет опыта в этом)
  5. Ролл-наш-собственный использование JSON или какой-либо другой системы сериализации данных в текст (php serialize(), XML и т.д. и т.п.)

В основном я склоняюсь к AMFPHP, даже из-за недостатков, поскольку это то, к чему я привык.Есть какие-нибудь причины, по которым мне следует подумать о переходе на что-то другое?

Это было полезно?

Решение

Если вы хотите иметь быструю и эффективную связь, я настоятельно рекомендую придерживаться протокола AMF вместо пользовательского формата REST или JSON.

ZendAMF на самом деле не очень запутанный. Посмотрите вводное руководство по GotoAndLearn это довольно просто.

И как вы знаете, некоторые разработчики Из AMFPHP перешел на работу на ZendAMF. В некотором смысле ZendAMF является продолжением AMFPHP.

Другие советы

ZendAMF Хорошее краткое чтение - http://theflashblog.com/?p=441

Для меня это несложно.Zend Framework - один из лучших php-фреймворков в мире, и теперь вы можете общаться с Flash-клиентами.Дополните это поддержкой Adobe, в моей книге с этим покончено.

Альтернативы :

WebORB для php http://www.themidnightcoders.com/products/weborb-for-php

AMFPHP http://www.amfphp.com Если вы прочтете приведенный выше URL, то, вероятно, поймете, почему это больше не попадает в поле моего зрения.

Я не могу сказать вам, что лучше (потому что в любом случае это, вероятно, несколько субъективно), но я могу рассказать вам о моем недавнем проекте.

Поскольку это было очень богатое веб-приложение, и запросы данных на сервер были бы частыми, я хотел убедиться, что размер запросов был как можно меньше. Это означает выбор JSON в качестве формата.

Затем, из-за характера приложения и того факта, что мои разработчики flash / flex были за 1000 миль, мне понадобился простой API, не имеющий состояния. В конечном итоге это привело нас к HTTP + REST.

Итак, коммуникационный уровень моего приложения представляет собой простой набор ресурсов REST на основе Zend Framework с такими URI, как

user/10
review/15
location/8/reviews

Все они возвращают JSON. Существует также общий формат JSON для всех ошибок (исключения перехватываются и преобразуются в объекты JSON), чтобы флэш-клиент мог легко обрабатывать ошибки.

Если вы не используете фреймворк, такой как Zend, обычный AMFPHP все еще хорош, если только по какой-то другой причине он прост. Я думаю, если вы чувствуете себя комфортно с этим, почему бы не пойти на это? Суть роли этих интерфейсов AMF в том, что им действительно не нужно делать слишком много, и что AMFPHP имеет в отображении классов, разборе набора записей в ArrayCollection, отличной производительности ... это даже хорошо с XML, так как это сжимается. Сервисный браузер в сочетании с Чарльзом накрыл и меня.

Я не смог понять, как усилия ZendAMF связаны с оригинальным AMFPHP. Хотя я могу копать, я просто говорю, что, следуя списку рассылки AMFPHP на Nabble, читая блог Уэйда Арнольда ... это просто не совсем понятно.

Вам следует рассмотреть возможность использования Zend AMF. Zend Framework спроектирован так, чтобы быть фреймворком выбора, поэтому вполне можно выбрать один компонент (в данном случае Zend AMF) для вашего приложения.

Zend AMF чрезвычайно прост в использовании. Все, что вам нужно сделать, это указать функции / классы, которые вы хотите предоставить, и указать сопоставление классов вашим классам сценариев действий. Все остальное в значительной степени прозрачно.

Эта ссылка представляет собой скриншот, показывающий, как использовать WebORB для PHP WDMF (Управление данными WebORB для Flex).

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

Во всех проектах, связанных с Flash и PHP, я работал с запросами AMFPHP или XML.

AMFPHP действительно упрощает недопущение приложения для будущего обслуживания, хотя все это связано с этой конкретной технологией и требует дополнительных затрат на стороне сервера - для создания всех необходимых классов.

Что касается XML, то, что вы получаете здесь, это стандартные веб-сервисы REST, и это не зависит от Flash (например, вы можете извлекать данные и из настольного приложения, тогда как использование JSON или любой другой технологии зависит от браузеров). не допускать этого).

Если вы хотите 100% будущего " support ", то я бы порекомендовал то, что вообще не нуждается в поддержке: XML.

XML на PHP может быть намного проще с SimpleXML .

Я бы просто использовал JSON в качестве возвратов для простых вызовов против вашего PHP API.

Я бы определенно выбрал WebORB.Я использовал его с .NET на моей предыдущей работе, и кодировать с ним было одно удовольствие.Простота использования и продуманная консоль управления делают его очень быстрым в освоении, а документация очень полная;Я знаю, что есть соблазн остаться с AMF только потому, что это то, что вы уже знаете, но я считаю, что стоит попробовать WebORB.

Взгляните на это скринкаст для генерации Actionscript с помощью PHP это довольно необычно.

Ваше здоровье.

PHP имеет довольно хорошую функцию serialize(), поэтому для моего недавнего проекта (высокие оценки за игру) я использовал Sephiroth's Сериализатор . Это делает сериализацию на стороне Flash почти такой же простой, как и в PHP. Serializer также имеет дело с типами данных (в отличие от json / xml), такими как AMF.

Недостаток - он не такой компактный, как AMF, но это ничто, с чем gzip-сжатие не справится.

AMF имеет довольно ситуативное преимущество. Если вы хотите передать большой и сложный объект, обязательно используйте AMF. Но мало кто знает о накладных расходах, которые несет AMF при передаче небольших объектов. Если вы передаете объект только с 3 свойствами, использование AMF может утроить размер полезной нагрузки.

Кстати, я большой сторонник архитектуры RESTful. Поскольку JSON и AMF являются просто представлениями, вы можете создать службу REST, которая принимает оба, и согласовать фактическое представление с вашим клиентом во время выполнения.

" Если вы хотите иметь быструю и эффективную связь, я настоятельно рекомендую придерживаться протокола AMF "

А если вам нужна быстрая, эффективная и обобщенная связь, используйте json. Тогда ваш веб-сервис будет доступен для flash, ajax или регулярных http-запросов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top