zend_amf:flashとphpの連携でDB接続

flashから直接DBに接続することはできない。

そこで、zend_amfで簡単に接続できる。

1.phpのZend_Amf_Serverクラスを利用する。

2.phpでDB操作するクラスとそのメソッド作成

3.flashからDB操作するクラスのメソッドを実行する。

■php:アクション

   $server =& new Zend_Amf_Server();
        $server->setClass(‘クラス名’);
        $response =& $server->handle();

        $this->_helper->layout->setLayout(‘データ吐き出しようのカラページ’);
        $this->_helper->viewRenderer->setNoRender();
        echo $response;

■php:クラス
class クラス名{

    private $db;

    public function __construct() {
        $config = new Zend_Config_Ini(‘~.ini’, ‘~);
        $this->db = Zend_Db::factory($config->db);
        $this->db->getConnection();
    }

    public function getUseInfo($user_name) {
        return $this->db->fetchAll(“SELECT * FROM ~ );
    }
    }

■flash
var gateway:String = “http://~.com/sr/コントローラー/アクション/”;要はURL
var connection:NetConnection;
var responder:Responder;

function getLevel(){
    responder  = new Responder(onResultHandler, onStatusHandler);
    connection = new NetConnection();
    connection.connect(gateway);
    connection.call(“getLevel”,responder, “関数に渡す値があれば”);
}

function onResultHandler(result:Object):void {
    trace(result);

}

function onStatusHandler(fault:Object):void {
    trace(String(fault.description));
}

課題
1.phpのセッションがZend_Amf_Serverと共通化できない。
2.zend_authがZend_Amf_Serverと共通化できない。
3.cookieがとれない。

requestやresponseに値を追加できるメソッドがあるが、使い方がわからない。

追加
zendframework1.8からZend_Amf_Server内でzend_session、zend_auth、zend_aclなどが使えるようになった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です