Flex com PHP usando ZendAMF – Zend_Db

O artigo Adobe Flex com PHP usando ZendAMF – primeiros passos teve como objetivo exemplificar a integração do Flex com PHP para quem já tinha sistemas desenvolvidos usando o AMFPHP, por isso não usei as classes para acesso a banco de dados do ZendFramework. Neste artigo mostrarei o mesmo exemplo mas usando exclusivamente ZendFramework.

Pegarei o mesmo exemplo utilizado no artigo anterior, só modificando a classe PHP para usar as classes de abstração de banco de dados do ZendFramework. Começaremos com nosso gateway.php
[PHP]
< ?php require_once 'Zend/Config.php'; require_once 'Zend/Db.php'; require_once 'Zend/Amf/Server.php'; require_once 'Zend/Amf/Exception.php'; require_once 'Zend/Amf/Server.php'; $server = new Zend_Amf_Server(); $server->setProduction(false);
$server->setClass(‘Contato’);
echo($server->handle());
?>
[/PHP]
Executando o link no seu navegador, deve aparecer a seguinte mensagem:

Zend Amf Endpoint

Em seguida, modificaremos em nossa classe principal, que efetuará as operações de listar, inserir, apagar e atualizar os dados do nosso banco:
[PHP]
< ?php /* * author Leonardo França * site http://www.leonardofranca.com.br */ class Contatos { private $db; private $config; private $select; private $stmt; function __construct() { $params['host'] = 'localhost'; $params['dbname'] = 'java'; $params['username'] = 'root'; $params['password'] = ''; $database['adapter'] = 'Mysqli'; $database['params'] = $params; $data['database'] = $database; $this->config = new Zend_Config($data);
$this->db = Zend_Db::factory($this->config->database);
}

public function getData()
{
try
{
$this->select = $this->db->select();
$this->select->from(‘tabela’,array(‘id’,’nome’,’email’));
$this->stmt = $this->select->query();
$result = $this->stmt->fetchAll();
return $result;
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}

public function insertData($data=array())
{
try
{
$dados = array(
‘nome’ => $data[‘nome’],
’email’ => $data[’email’]
);
$retorno = $this->db->insert(‘tabela’, $dados);
return $retorno;
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}

public function deleteData($data=array())
{
try
{
$retorno = $this->db->delete(‘tabela’, ‘id = ‘.$data[‘id’]);
return $retorno;
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}

}

public function updateData($data=array())
{
try
{
$dados = array(
‘nome’ => $data[‘nome’],
’email’ => $data[’email’]
);
$where[‘id = ?’] = $data[‘id ‘];
return $this->db->update(‘tabela’, $dados, $where);
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}

}
?>
[/PHP]

No ActionScript só precisaremos mudar o que será passado para o PHP, ao inves de VOs, mandaremos Arrays:
[ACTIONSCRIPT3]
public function insertData():void
{
var contatosVO:Array = [];
contatosVO[‘nome’]= input_nome.text;
contatosVO[’email’] = input_email.text;
ro.insertData(contatosVO);
}
[/ACTIONSCRIPT3]

Referências:
http://framework.zend.com/manual/en/zend.db.adapter.html

Mais códigos e PDFs clique aqui.

2 thoughts on “Flex com PHP usando ZendAMF – Zend_Db

  1. Guilherme Costa

    Quando eu executo o gateway.php ele faz um download… isso está certo???

Leave a Reply