Лучший метод для связи Flex с PHP?


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

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

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

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

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

Author: davr, 2009-03-16

12 answers

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

Зендамф на самом деле не очень сбивает с толку. Посмотрите вводный урок по gotoAndLearn, это довольно просто.

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

 8
Author: St. John Johnson, 2009-03-19 15:22:09

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

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

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

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

АМФФП http://www.amfphp.com Если вы прочтете URL-адрес выше, вы, вероятно, знаю, почему это больше не на моем радаре.

 2
Author: jerebear, 2009-03-19 07:02:23

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

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

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

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

user/10
review/15
location/8/reviews

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

 1
Author: Peter Bailey, 2009-03-16 21:05:10

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

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

 1
Author: Ben Throop, 2009-03-20 04:32:00

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

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

 1
Author: Kevin Chan, 2009-03-23 06:44:12

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

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

 1
Author: Kathleen Erickson, 2010-03-18 14:37:46

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

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

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

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

 0
Author: Seb, 2009-03-20 11:27:56

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

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

 0
Author: Rizwan Kassim, 2009-03-20 20:06:13

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

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

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

 0
Author: GiantSquid, 2009-03-23 13:25:01

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

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

 0
Author: zenazn, 2009-03-25 15:42:07

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

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

 0
Author: ming_codes, 2011-03-30 01:22:17

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

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

 -2
Author: rick, 2009-03-19 18:08:53