バックグラウンド
わかりました、私は決して質問をせず、たいてい既存の質問やフォーラムから必要なものを見つけることができる人の 1 人です....現存する情報が少ない。
PHP Premium 用の Flash Builder 4.6 を使用して、PHP Zend Frameworks の AMF 機能を使用してクラスを PHP から Flex にマップし、それらをオブジェクトとして使用して XML や JSON を使用する代わりに送受信する Flex アプリケーションを構築しています。現在、簡単にするために、すべてを単一のローカル マシンで実行しています。
問題
DateTime
独自のカスタム PHP クラスを ActionScript/Flex クラスにマッピングするのに問題はありませんが、 PHPクラスを ActionScript クラスにマッピングすることはできませんDate
。DateTime
オブジェクトをオブジェクトに自動的にマップすることを他の場所で読んだことがありますが、機能Date
するようになったことはありません。
奇妙なことに、私の場合valueObjects.DateTime
(自動生成された ActionScript クラス) のすべてのインスタンスを、プロパティを持つクラスに置き換えると、機能するようDate
になります。これにより基本的に、Flex はそのプロパティのデータを. ただし、すべてのファイルは Flex によって自動生成されたファイルであるため、Flash Builder で Flex がリンクしている PHP サービスを更新または編集するたびに書き換えられます。_Super_Foo.as
DateTime
Date
_Super_XXX.as
備考
もちろん、変数を文字列として保持することでこれを迅速かつ汚い方法で行うことができます (DateTime フィールドの MySQL からのものです)。その後Date
、クライアント側でオブジェクトに変換する関数をいくつか作成するだけですが、より永続的なものが必要です。そして安定した解決。
例:
<?php
class Foo {
public $id; // int
public $name; // string
public $date; // DateTime
public $bar; // custom object
}
?>
---> に行く必要があります
package {
class Foo {
public var id:int;
public var name:String;
public var date:Date; // native class
public var bar:Bar;
}
}
しかし、私は得ています
package {
class Foo {
public var id:int;
public var name:String;
public var date:DateTime; // custom class
public var bar:Bar;
}
}
私は次のようなことを試しました:
gateway.phpファイルで
$server->setClassMap("Date", "DateTime");
代わりにZend_Dateオブジェクトを使用する
$foo->date = new Zend_Date($blah);
そしてそれを明示的にマップしようとした後
$server->setClassMap("Date", "Zend_Date");
現在_Super_Foo.asファイルで作業している変更(頻繁に上書きされます)
private var _internal_date : valueObjects.DateTime; // custom object
に
private var _internal_date : Date; // native object
私はそれを読んだように、これを自動的に行う必要があります。