2011-09-01 63 views
0

设立的Zend AMF的时候我也跟着在本教程中设置的Zend AMF从我的Flash应用程序将数据传递到我的PHP应用程序的方式说明:访问服务目录笨

http://codeigniter.com/forums/viewthread/180414/

所以我有目录结构和一切描述在那里。这是我的网关控制器:

class Gateway extends CI_Controller 
{ 
     function __construct() 
     { 
       parent::__construct(); 
       $this->load->library('zend'); 

       //root_folder + application + controllers + amf + services 
       define('SERVICES_FOLDER', APPPATH.'controllers/amf/services/'); 
     } 

    public function index() 
    { 

      $server = new Zend_Amf_Server(); 

      $server->setProduction(false); 

      //$server->addFunction('testservice'); 

      $server->addDirectory(SERVICES_FOLDER); 

      echo $server->handle(); 
    } 

}

而且APPPATH是/应用/所以通过SERVIES_FOLDER定义的路径为 “/应用/控制器/ AMF /服务”,这是我的文件“TestService的。 PHP'坐。

当我尝试连接到该服务中闪光:

var gateway:String = "http://mysite.com/amf/gateway"; 
con.connect(gateway); 
con.call("Testservice.getMessage", new Responder(onResult, onFault)); 

它调用onFault方法,并显示错误:

Plugin by name 'Testservice' was not found in the registry;

这让我觉得addDirectory()行不知怎的,Gateway.php是个问题。有趣的是,我也无法通过URL访问testservice函数,即通过访问mysite.com/amf/services/testservice。

对这里可能发生的事情有任何想法?

回答

0

想通了,排序。

我没有使用addDirectory方法,而是使用了setClass方法,并在具有函数的gateway.php文件中创建了另一个类,现在我可以从flash连接到这些函数。

0

我在服务控制器中使用parent :: __ construct()时遇到了问题。一旦我将其删除,问题就消失了。

相关问题