Flex对象未正确键入

时间:2015-04-01 17:15:14

标签: php flex amfphp

我正在努力将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;
    }

非常感谢任何帮助!

达尼

2 个答案:

答案 0 :(得分:0)

找到答案: vo对象的标准位置是/ Services / Vo / 在我的情况下,我的vo对象在/ dto / 当我将所有的vo对象放入/ Services / Vo /时,一切都按预期工作。

BUT

我尝试使用以下命令设置/ dto /:

$this->voFolders = array(AMFPHP_ROOTPATH . 'dto/');

这不起作用。 所以:

  • 我很高兴解决了这个问题
  • 这是Amfphp中的一个错误 配置?

答案 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”));