我按照本教程中的说明将 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 是 /application/,所以 SERVIES_FOLDER 定义的路径是“/application/controllers/amf/services”,这是我的文件“testservice.php”所在的位置。
当我尝试在闪存中连接到该服务时:
var gateway:String = "http://mysite.com/amf/gateway";
con.connect(gateway);
con.call("Testservice.getMessage", new Responder(onResult, onFault));
它调用 onFault 方法并显示错误:
在注册表中找不到名为“Testservice”的插件;
这让我认为 Gateway.php 中的 addDirectory() 行在某种程度上是问题所在。有趣的是,我也无法通过 URL 访问 testservice 功能,即访问 mysite.com/amf/services/testservice。
对这里可能发生的事情有任何想法吗?