Este exemplo é a versão em Flex 2 deste exemplo em Flash 8. Consiste numa aplicação que executa operações CRUD (create, read, update and delete) a uma lista de utilizadores numa base de dados, utilizando Flash Remoting para comunicar com o servidor.
Comparativamente à versão em Flash 8, o lado do servidor manteve-se igual (removi apenas a Method Table que em AMFPHP 1.9b2 já não é necessária). Utilizei AMFPHP 1.9b2 para tirar partido do suporte a AMF3, o protocolo de Flash Remoting utilizado por defeito pelo Flex 2.
Do lado do cliente, são cerca de 30 linhas de código para definir o interface gráfico, 6 para o RemoteObject que se encarrega do processo de comunicação com o servidor, e as restantes são os handlers de cada pedido feito ao servidor, que se encarregam basicamente de guardar em variáveis os dados que chegam do servidor.
Para colocar este exemplo a funcionar, é preciso ter em conta alguns passos importantes:
1. É preciso criar uma base de dados com o nome paw, e fazer dump deste ficheiro SQL
2. A directoria bin deve ser servida pelo servidor http
3. É preciso mudar o ficheiro GestorDeUtilizadoresService.php na directoria bin\amfphp\services nas linhas 15, 16 e 17, colocando os dados de acesso à base de dados. Este é também o único ficheiro do lado do servidor que interessa analisar (os restantes fazem parte do AMFPHP)
4. Convém testar colocando no browser o endereço do service browser do amfphp (provavelmente algo como http://{localhost}/{dirDoExemplo}/amfphp/browser) e chamando por exemplo o serviço getUtilizadores. Se for obtida resposta, é porque está tudo configurado correctamente.
5. Do lado do cliente, é preciso no Flex 2 adicionar o parâmetro “-services services-config.xml” ao compilador. Para fazer isto, basta clicar com o botão direito sobre o projecto, escolher “Properties | Flex Compiler” e na caixa “Additional compiler arguments” adicionar “-services services-config.xml” (sem as aspas)
6. No ficheiro services-config.xml é preciso alterar a linha 10, substituindo o endereço no argumento “uri” para o vosso endereço da gateway do AMFPHP.
O código pode ser descarregado daqui.