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.
Quando eu executo o gateway.php ele faz um download… isso está certo???
ta certo sim