このチュートリアルの手順に従って、Flash アプリから PHP アプリにデータを渡す方法として Zend AMF をセットアップしました。
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 (mysite.com/amf/services/testservice) から testservice 機能にアクセスすることもできません。
ここで何が起こっているのかについて何か考えはありますか?