Php Flex对象类型不正确
我正在努力将flex类实例恢复到Amfphp(v2.2) Flex中的简化代码:Php Flex对象类型不正确,php,apache-flex,amfphp,Php,Apache Flex,Amfphp,我正在努力将flex类实例恢复到Amfphp(v2.2) Flex中的简化代码: [RemoteClass(alias="Project")] public class Project { public function Project() { } } php代码: class Project { var $_explicitType = "Project"; public
[RemoteClass(alias="Project")]
public class Project
{
public function Project()
{
}
}
php代码:
class Project {
var $_explicitType = "Project";
public function foo()
{
return "bar";
}
}
此时,我将以下代码发送到服务器:
myRemoteObjectService.testMethod(myProjectInstance)代码>
这在php中处理如下:
public function testMethod($projectInstance)
{
return $projectInstance->foo;
}
这应该会将“bar”返回到我的Flex应用程序中,但相反,我得到
faultCode:Channel.Call.Failed faultString:'error'faultDetail:'NetConnection.Call.Failed:HTTP:Status 500'
工作原理是:
public function testMethod()
{
$project = new Project();
return $project->foo;
}
任何帮助都将不胜感激
丹妮找到了答案:
vo对象的标准位置是/Services/vo/
在我的例子中,我的vo对象位于/dto中/
当我将所有vo对象放入/Services/vo/中时,一切都按预期工作
但是
我尝试使用以下方法在配置中设置/dto/:
$this->voFolders=array(AMFPHP_ROOTPATH.dto/)代码>
但那没用。
因此:
- 我很高兴解决了这个问题
- 这是Amfphp中的错误吗
配置
Vo转换由Vo转换器插件处理。这里有描述
在您的配置中尝试类似的操作
$this->pluginsConfig["AmfphpCustomClassConverter"] = array(“customClassFolderPaths” => array(AMFPHP_ROOTPATH . “MyVoFolder”));
当对象返回php时:-保留$projectInstance的所有属性-$projectInstance->\u explicitType返回'Project'-$classMethods=get\u class\u方法($projectInstance);返回空数组!