第4回 AMFPHPとは? PHPとFlexの連携 - Ajax+RIA講座

くまちゃん先生のAjax+Flex講座

Lecutures on PHP

第4回 AMFPHPとは? PHPとFlexの連携 (その1)

 このエントリーをはてなブックマークに追加

はじめに

くまちゃん先生前回まではAjaxというものがどのようなものなのか、実際に簡単なサンプルアプリケーションを作成して説明してきました。Ajaxは既に今日のWebアプリケーション開発には必要不可欠なものになってきています。

しかし、もう一つその開発に使われつつある技術があります。それはAdobe Flexと呼ばれるものです。今回は少し視点を変えてPHPとそのFlexとの連携について説明していきたいと思います。

Flexとは

Webアプリケーション開発の中で動的なページを実現する方法として、まず挙げられるのは前回までのテーマであったAjaxを用いた開発です。これの利点としては、クライアント側ではブラウザ以外に特別必要なものは無いということです。ブラウザに実装されているJavaScriptによって動的にサーバと通信を行うことができ情報を更新することができます。しかし、開発する側としてはブラウザによるJavaScriptやユーザインタフェースとなるHTML+CSSの実装の違いに悩み、場合によってはその解決に余計な時間がかかることがあるかもしれません。

そこで、もう一つ動的なページを実現する方法として登場する技術でFlexが挙げられます。

くまちゃん先生Flexとは一言でいえばFlashの一種です。Flashはどちらかというとムービーやアニメーションといったエンタテイメント向けという方向性があり、開発にはAdobe Flash CS3を用いてタイムラインやムービークリップといったものを操作し進めていきます。もちろん、エンタテイメント向けのものだけでなくWindowsアプリケーションのようなユーザインタフェースをもったWebアプリケーションを作成することもできます。

しかし、もともとがエンタテイメント向けの開発環境ということもあり、PHP等で開発してきた開発者にとってはタイムライン等を駆使して開発を進めるということはなかなか難しいものがあります。

そこで登場するのがFlexとなります。Flexは最終的に出来上がるものはFlashのランタイム上、いわゆるFlash Player上で動作するのでFlashと同じですが、その開発手法が異なります。Flex SDKを用いてソースコードをコンパイルといったプログラム開発者にとってはなじみの手法で開発を進めることができます。

MXML(Macromedia Flex Markup Language)と呼ばれるXMLベースの独自言語でFlexアプリケーションのユーザインタフェースを作成し、FlashでもおなじみのActionScriptでロジックを記述していきます。Flex SDKを用いて普段使用しているエディタで開発を進めることもできますし、有償になりますがAdobeが提供しているEclipseベースのFlex Builderや、無償なものでもEclipse上で動作するプラグインがあります。それらを使用し開発を進めていくことができるので、Flashとは違い容易に開発をすることができます。

また、Flashのランタイム上で動作するということでAjaxのようにブラウザによる実装の違いに苦しむことはなくなりますが、動作するためにはブラウザにFlashプラグインのインストールが必要になるという欠点はあります。しかし、今現在大部分のユーザの環境にはFlashプラグインがインストールされているということもあり、それほど心配する必要はないかと思います。

Adobe版とOpen Source版の違い

くまちゃん先生そのFlexですが、Flex SDK 3からはオープンソースになり、Adobeのサイトでは現在2種類公開されています。Adobe Flex SDKとOpen Source Flex SDKです。

Free Adobe Flex SDKはいわゆるFlex SDKであり、Adobeが出しているオフィシャルなFlex SDKです。Open Source Flex SDKはMozilla Public License(MPL)に基づき公開されているオープンソース版Flex SDKになり、Adobe Flash PlayerやAdobe AIR、その他フォント関係のライブラリ等クローズドなものを含まない、オープンソースなものだけが含まれているSDKになります。

AMFとは

サーバとの間で通信する際に使用されるフォーマットとして、FlexはAjaxと同様にXMLなどテキストベースのフォーマットを使用することができるのですが、その他にAMF(ActionScript Message Format)と呼ばれるバイナリフォーマットを使用することができます。このフォーマットを使用することにより軽量で高速にFlexとサーバ間の通信をおこなうことができ、結果としてWebアプリケーションのパフォーマンスを上げることができます。

AMFPHPとは

くまちゃん先生Flexでアプリケーションを構築する際には、軽量で効率的に通信を行うことができるこのAMFの使用をお勧めします。PHPでAMFを扱うためのライブラリはいくつか公開されており、AMFPHP、SabreAMF、AdobeとZendが手を組みZend Framework向けに提供しているコンポーネント等、様々なものがあります。

今回はその中でも古くから存在し、実績もあるAMFPHPを取り上げたいと思います。

AMFPHPの特徴としては、

  • 簡単なインストールと実装
  • PHP4もしくはPHP5どちらにも対応
  • 特別なエクステンション等必要無いため、CakePHP等フレームワークに埋め込むことが可能
  • GUIの開発支援ツールが付属

といったものが挙げられます。このライブラリを使用することで、Flex側からPHPのメソッドを呼び出せるなど、Flex+PHPでの開発がとても容易になります。

  • 1
  • 2


Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)