我正在努力将flex类实例恢复到Amfphp(v2.2)
Flex中的简化代码:
[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'sensailDetail:'NetConnection.Call.Failed:HTTP:Status 500'
有什么作用:
public function testMethod()
{
$project = new Project();
return $project->foo;
}
非常感谢任何帮助!
达尼
答案 0 :(得分:0)
找到答案: vo对象的标准位置是/ Services / Vo / 在我的情况下,我的vo对象在/ dto / 当我将所有的vo对象放入/ Services / Vo /时,一切都按预期工作。
BUT
我尝试使用以下命令设置/ dto /:
$this->voFolders = array(AMFPHP_ROOTPATH . 'dto/');
这不起作用。 所以:
答案 1 :(得分:0)
Vo转换由Vo转换器插件处理。 IT在这里描述http://www.silexlabs.org/amfphp/documentation/plugins/plugins-distributed-with-amfphp/vo-converter/ 在配置中尝试这样的事情
$this->pluginsConfig["AmfphpCustomClassConverter"] = array(“customClassFolderPaths” => array(AMFPHP_ROOTPATH . “MyVoFolder”));