Olá pessoal, meu nome é Dheyson Wildny sou Analista de Sistemas e trabalho com desenvolvimento há 4 anos, atualmente com as linguagens PHP5 OO / Ajax / CSS e cuido de um portal na área da saúde www.indiq.com.br.
Acordei hoje (07/11/2008) e percebi que já estava passando da hora de compartilhar o que aprendi nestes anos com quem está começando a desenvolver, daí pensei, vou falar sobre o quê? Com tantos sites que falam sobre o assunto na net, mas acho que ajuda nunca é demais, e então cheguei a seguinte conclusão: Flex tem sido umas das mais promissoras ferramentas para web dos últimos anos, e porque então, não comecei estudar isto até hoje? Não obtive resposta, mas não adianta chorar o tempo perdido, então, mãos a obra!
Na semana passada tive o primeiro contato direto com a ferramenta e vou dizer que não parece ser nenhum “bixo de sete cabeças” não.
Hoje vou começar explicando passo-a-passo como configurar o Flex Builder 3, com o remoting Amfphp 1.9 e o back-end em PHP 5 OO.
Vamos lá:
1º. Passo: Baixar e instalar o Flex Builder 3.0 no site da Adobe, existe uma versão trial free por 60 dias ou se preferir pode baixar o pluging do flex para o eclipse, que é a mesma coisa e totalmente free (para instalar o Flex
Builder... next, next, next, finish. rsrs...).
link trial free: http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email
2º. Passo: Baixar o Amfphp 1.9 (.zip).
http://sourceforge.net/project/showfiles.php?group_id=72483&package_id=72363&release_id=541961
3º. Passo: Baixar o PHP 5 e configurá-lo (não entrarei muito em detalhes de como fazer isto, mas vou deixar
aqui o link de um ótimo artigo de como configurar: Apache + PHP 5 + MySQL, qualquer dúvida podem entrar em contato comigo por e-mail).
http://www.plugmasters.com.br/sys/materias/243/1/Instalando-Apache-%2B-MySQL-%2B-PHP-5-no-Windows
4º. Passo: Descompacte o arquivo Amfphp 1.9.zip para uma pasta chamada amfphp dentro do htdocs do apache (diretório onde ficam os arquvios .php) como na figura abaixo:
Marque as opções como na imagem acima e clique em Save. Pronto o Amfphp está “instalado”, dificil não é??
5º. Passo: Para facilitar minha vida e evitar que eu fique com arquivos duplicados no meu pc, eu costumo definir meu
diretório de “workspace” para o mesmo diretório onde os arquivos são compilados, mas isso vai de cada um.
Abra o Flex Builder vá em File ->Switch Workspace -> Other... no campo workspace coloque o caminho da pasta browser localizada dentro da pasta amfphp que acabamos de descompactar, no meu caso: C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\amfphp\browser
Prontinho, tudo configurado e funcionando!
Vamos agora criar um projeto simples para mostrar um “Hello world” vindo do PHP para o Flex!
Vá em File -> New -> Flex Project

Dê o nome de FlexHelloWorld e deixe as configurações como acima, no seu caso provavelmente a opção “Use default location” estará selecionada, deixe-a como estiver, depois clique em next.

Clique em Browse..., encontre a pasta browser dentro de amfphp e crie uma nova pasa com o mesmo nome do projeto: FlexHelloWorld
No Root URL deverá constar o caminho de acesso no browser do seu projeto, no nosso caso o camingo acima, após isto clique em Validade Configuration depois em Finish
Agora copie um arquivo chamado services-config.xml que se encontra dentro da pasta browser do amf para a pasta raiz do projeto criado. Depois que copiar abra o arquivo e no caminho da uri, coloque: http://localhost/amfphp/gateway.php, como na imagem. 
Feito isto clique com o botão direito sobre o projeto criado e selecione a opção properties, como na imagem:

Na janela que abrir selecione: Flex Compiler e na caixa Additional compiler arguments adicione -services "../services-config.xml" e ok, como mostra a figura abaixo.

Pronto o Flex Builder está pronto para receber informações, vamos agora criar nossa classe .php
Crie um arquivo chamado Hello.php e salve dentro da pasta services do amfphp (é lá que são armazenados os arquivos de back-end). Deixe o código deste arquivo da seguinte forma:
<?php
class Hello {
public function HelloWorld() {
return "Hello World!";
}
}
?>
Ok! Agora vamos testar nosso método para ver se realmente esta funcionando, digite http://localhost/amfphp/browser no seu navegador. Deverá aparecer desta forma, quando selecionar Hello e clicar em Call: 
Pronto agora só falta chamar o método no Flex. Digite nas linhas de comando do arquivo FlexHelloWorld.mxml como na imagem abaixo:

Agora é só pressionar Ctrl+F11 (compilar) e ver o resultado!
Bom espero ter sido bem claro e ter ajudado com este meu primeiro tutorial, qualquer dúvida me coloco a disposição!
Abraço e até a próxima!!!
Parabéns pela iniciativa.
ResponderExcluirDisponibiliza para download ou manda por email este projeto..
ResponderExcluirborellametal@yahoo.com.br
att
Cara muito massa esse tutorial, aqui funcionou tudo certo. Agora vou me encarnar, valeu mesmo!
ResponderExcluirtenho uma duvida em relação ao como trabalhar com os dados recebidos da função... por exemplo se eu receber uma matriz de um banco (no browser rodou legal!)
ResponderExcluirclass teste
{
public function consulta($sql, $banco)
{
$conn = mysql_connect("localhost","root");
$banch = mysql_select_db($banco, $conn);
return mysql_query($sql);
}
}
como montar um .as ou um componete pra lidar com esses dados??
se puder me responda no meu email tbm (luan.dev@gmail.com)
Muito interessante, tambem comecei trabalhar com flex a pouco tempo, fiz uma aplicação que roda perfeitamente na minha maquina mas qnd hospeda ae ferra tudo.
ResponderExcluirse puder me ajudar agradeço.
Cara no meu deu esse erro:
ResponderExcluir(mx.rpc::Fault)#0
errorID = 0
faultCode = "Client.Error.MessageSend"
faultDetail = "Channel.Connect.Failed error NetConnection.Call.BadVersion: "
faultString = "Send failed"
message = "faultCode:Client.Error.MessageSend faultString:'Send failed' faultDetail:'Channel.Connect.Failed error NetConnection.Call.BadVersion: '"
name = "Error"
rootCause = (Object)#1
code = "NetConnection.Call.BadVersion"
description = ""
details = ""
level = "error"
como resolver?
O erro pode ser no seu remote object, tenta utilizar o ZendAMF... atualmente eu soube que o projeto da AMFPHP está parado, ou seja, os bugs existentes vão permanecer!!!
ResponderExcluirAbs!