Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pergunta Frequente:
P: “Posso ligar o Flex directamente a uma base de
dados?”
R: Não. (mas o Air pode)
Pergunta Frequente:
P: “Vou precisar de aprender uma tecnologia de
backend nova?”
R: Não. É possível ligar o Flex a quase qualquer
tecnologia de backend existente
Pergunta Frequente:
P: “A minha empresa possui uma aplicação distribuída
sustentada em Web-Services, mas queria mudar o
frontend para Flex. Tenho que refazer o backend?”
R: Não. As aplicações Flex consomem facilmente os
Web-Services existentes sem ser necessário mudar o
backend
http://www.jamesward.org/census/
Flash Remoting vs Web Services
Pergunta Frequente:
P: “Tenho que comprar esse «Flash Remoting»?”
R: Não. Existem diversas implementações de Flash
Remoting open-source ou gratuítas para as mais
variadas tecnologias de backend.
Implementações Open-Source de Flash
Remoting
JAVA Perl PHP
openAMF AMF::Perl SabreAMF
GraniteDS CakePHP
BlazeDS WebOrb
Ruby
Red5 AMFPHP
Rubyamf
WebOrb
NET
Fluorine
Python
AMF.NET
PyAMF
Mais em http://osflash.org/projects
AMFPHP
URL: www.amfphp.org
Pergunta Frequente:
P: “Preciso de algum servidor especial para usar
AMFPHP? De instalar alguma ferramenta,
tecnologia, alguma coisa?”
R: Não. Basta fazer upload do source code do
AMFPHP para um servidor LAMP e usar!
O AMFPHP
http://www.amfphp.org
Está disponível uma versão do FB3 RC1 trial de 90 dias no Adobe Labs:
http://labs.adobe.com/technologies/flex/
Montar o cenário
Em vez de instalarmos o Apache, PHP e MySQL em
separado, podemos usar o XAMPP. Basta fazer o
download, descomprimir e correr os serviços.
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `produtos` VALUES ('1', 'Portátil A6JC', '5', 'É o meu
:)', 'Informática');
INSERT INTO `produtos` VALUES ('2', 'Frigorifico Zippy', '15',
'Frigorifico ecológico ', 'Electrodomésticos');
INSERT INTO `produtos` VALUES ('3', 'Telemóvel 8G', '1', 'Um telemóvel
3G que engana os clientes', 'Telecomunicações');
Ok, o cenário está montado.
Chegou a altura de criarmos o
código
Criar no backend o serviço de
gestão de produtos
Na pasta “services” do AMFPHP criar o ficheiro
GestorDeProdutosService.php e com o seguinte código:
<?
class GestorDeProdutosService
{
function GestorDeProdutosService ()
{
$this->conn = mysql_pconnect('localhost', 'root', '');
mysql_select_db ('riapt');
}
}
?>
Criar o método que devolve os
produtos
a) 45
b) 10
c) 28
Criar o método que devolve os
produtos
function getProdutos()
{
return mysql_query("SELECT * FROM produtos");
}
Testar o método que devolve os
produtos – Service Browser
E obtemos isto:
E criar um método que envia dados para o
backend? Por exemplo, inserir produto?
No backend adicionar:
function addProduto($produto)
{
mysql_query("INSERT INTO produtos(designacao,
quantidade, descricao, categoria) VALUES (
'".$produto['designacao']."',
'".$produto['quantidade']."',
'".$produto['descricao']."',
'".$produto['categoria']."')");
return mysql_insert_id();
}
E criar um método que envia dados?
Por exemplo, inserir produto?
No frontend adicionar ao RemoteObject:
<mx:method name="addProduto"
result="addProdutoHandler(event)"/>
private function
addProdutoHandler(event:ResultEvent):void
{
produtosService.getProdutos();
}
E criar um método que envia dados?
Por exemplo, inserir produto?
private function
gravarBtnClickHandler(ev:MouseEvent):void
{
var produto:Object=new Object();
produto["designacao"]=designacaoTxt.text;
produto["quantidade"]=quantidadeNS.value;
produto["descricao"]=descricaoTa.text;
produto["categoria"]=categoriaCmb.selectedItem;
produtosService.addProduto(produto);
adicionarProdutoPanel.visible=false;
}
Resultado
Aprender Cairngorm:
http://www.riapt.org/2007/12/07/onde-aprender-cairngorm-a-framework-
mvc-da-adobe/