MXStudio » Flex » Seqüencial: Flex 2 e AMFPHP 1.9 B2 AMF3 – Parte 1

Seqüencial: Flex 2 e AMFPHP 1.9 B2 AMF3 – Parte 1



Este é um tutorial que requer mais conhecimento, ele é diferente dos meus outros tutoriais que abordam o passo a passo desde o básico.

Para obter um melhor entendimento deste seqüencial é indispensável que você possua conhecimento dos tópicos descritos abaixo, pois eles serão abordados de uma maneira geral e você tem que conhecê-los para ficar por dentro do que esta sendo explicado.

1) O que é flash remoting, como funciona?
2) O que é AMFPHP e AMF (AMF0 e AMF3)?
3) O básico do eclipse (Flex Builder), principalmente: criar e configurar o seu projeto projeto.
4) O básico do PHP 5, que suporta orientação a objetos.
5) Conceitos de orientação a objetos.
6) Tratamento de exceções no PHP 5.
7) Saber instalar um servidor local PHP 5, ou utilizar um servidor externo configurado.
8) Conhecimento básico de SQL, neste sequêncial utilizaremos o MySQL, porém eu recomendo o PostGreSQL como banco de dados para desenvolver aplicações com o Flex, quando se trata de software livre.
9) Saber utilizar Sessões com o PHP 5.
10)
Ter um conhecimento razoável em Flex 2 e ActionScript 3.
11) Conseguir entender a referência oficial do Flex 2 disponível no menu Help do Flex Builder e a referência do PHP disponível em http://php.net, para tirar dúvidas sobre as sintaxes utilizadas.
12) Conhecer sobre o desenvolvimento de software em camadas, os conceitos de aplicações cliente servidor e RIA.

Links úteis para seu aprendizado:

1) Flex RemoteObject and AMFPHP 1.9 – http://sephiroth.it/tutorials/flashPHP/flex_remoteobject/index.php
2) PHP – Exceções: http://br.php.net/exceptions
3) PHP – Funções de manpulação de Sessões: http://br.php.net/manual/pt_BR/ref.session.php
4) Grupo Flex Coders: http://tech.groups.yahoo.com/group/flexcoders
5) Grupo Flex Brasil: http://br.groups.yahoo.com/group/flex-brasil
6) Instalando Apache + MySQL + PHP 5 no Windows: http://www.linhadecodigo.com.br/Artigo.aspx?id=1151
7)DClick Blog: http://blog.dclick.com.br
8) Comunidade Portuguesa de Desenvolvimento de Rich Internet Applications: http://www.riapt.org

————————————————————————————–

Requisitos: configuração de servidores.

1) Partindo do presuposto que você já possui um servidor PHP 5 e MySQL configurado, vamos começar com a instalação do AMFPHP 1.9 B2.
Observação: 1. se é que posso de chamar de instalação pois não tem nehum segredo em extrair os arquivos compactados. 2. se quiser pode utilizar estes pacotes pré configurados, como o EasyPHP – disponível em www.easyphp.org – o easyphp 2 (que possui suporte a PHP 5) pode não funcionar em alguns computadores por ser versão beta.

1a) Baixe o AMFPHP 1.9 B2 (compatível com PHP 5.2.2) aqui: http://www.5etdemi.com/uploads/amfphp-1.9.beta.20070513.zip – site que disponibiliza esta versão: http://www.5etdemi.com/blog

1b) No seu servidor web (geralmente o Apache[pasta htdocs]. No EasyPHP[pasta www]) crie uma pasta com o nome de sequencial_flex_amfphp, que armazenará o projeto.

1c) Extraia o arquivo amfphp-1.9.beta.20070513.zip na pasta sequencial_flex_amfphp.

1d) Agora vamos testar se o AMFPHP está funcionando corretamente, para isso acesse o endereço: http://localhost/sequencial_flex_amfphp/amfphp/browser – se você estiver usando o servidor local, caso contrário acesse o endereço de acordo com as especificações do servidor utilizado: http://{especificações do servidor utilizado}/sequencial_flex_amfphp/amfphp/browser.

1e) A tela abaixo irá aparecer:

1f) Mantenha a opção AMF3 selecionada e o Gateway location padrão (não altere o endereço) e clique no botão save.

1g) Após salvar a configuração padrão a aplicação se abrirá:

1h) Nesta aplicação é onde faremos os testes dos nossos serviços, ou seja, para saber se eles estão funcionando corretamente antes de implementá-los na aplicação em Flex.

————————————————————————————–

Revisando

Agora que já temos o servidor PHP 5 com MySQL e AMFPHP 1.9 B2 configurados, podemos iniciar a implementação da Base de Dados e dos serviços que disponibilizarão os métodos de acesso a esta base.

————————————————————————————–

Requisitos: banco de dados.

2a) Vamos criar um banco de dados com o nome de sequencial_flex_amfphp.

2b) A base de dados que utilizaremos será bem simples, observe o SQL:

CREATE TABLE usuario
(
codigo INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
sexo CHAR(1) NOT NULL,
apelido VARCHAR(200) NOT NULL,
senha VARCHAR(200) NOT NULL
);

2c) Observações: sexo (M ou F) – apelido(username) e senha(password) serão criptografados.

————————————————————————————–

Revisando

A base de dados foi criada agora vamos criar a conexão de acesso ao banco de dados.

————————————————————————————–

Requisitos: PHP 5.

3a) Vamos criar a pasta config dentro da pasta sequencial_flex_amfphp, a arquitetura de pastas do servidor deve ficar assim:

| sequencial_flex_amfphp
|– amfphp
|– config

3b) Dentro da pasta config criaremos o arquivo Conexao.php.

<?php
class Conexao
{
private $CONEXAO;

public function __construct()
{
$this->Conectar();
}

private function __sleep()
{
mysql_close($this->conexao);
}

private function __wakeup()
{
$this->Conectar();
}

private function Conectar()
{
$this->CONEXAO = mysql_connect(“localhost”, “root”, “”);
mysql_select_db(“sequencial_flex_amfphp”, $this->CONEXAO);
}

public function getConexao()
{
return $this->CONEXAO;
}

}
?>

3c) Não esqueça de alterar as configurações da conexão(disponíveis no método Conectar) de acordo com o seu servidor.

3d) Agora vamos criar um serviço de teste para verificar se a conexão esta funcionando corretamente. Vá na pasta: sequencial_flex_amfphp/amfphp/services e crie uma pasta com o nome de sequencial_flex_amfphp(que armazenará os serviços da aplicação desenvolvida neste seqëncial). A arquitetura ficará assim:

| sequencial_flex_amfphp
|– amfphp
|—— services
|——— sequencial_flex_amfphp
|– config
|—— Conexao.php

3e) Dentro da pasta que acabamos de criar, crie o arquivo Teste.php:

| sequencial_flex_amfphp
|– amfphp
|——services
|——— sequencial_flex_amfphp
|———— Teste.php
|– config
|—— Conexao.php

3f) Faremos uma consulta simples para verificar se tudo esta funcionando corretamente, segue o conteúdo do arquivo Teste.php:

<?php
require_once(“../../../config/Conexao.php”);

class Teste
{
private $CONEXAO;

public function __construct()
{
$CONEXAO = new Conexao();
$this->CONEXAO = $CONEXAO->getConexao();
}

public function totalUsuarios()
{
$SQL = “SELECT * FROM usuario”;
$QUERY = mysql_query($SQL, $this->CONEXAO);
// Retorna o total de usuários cadastrados
return mysql_num_rows($QUERY);
}

}
?>

3g) Agora voltaremos no AMFPHP Browser para verificar se o serviço funcionou como o esperado. Acesse: http://localhost/sequencial_flex_amfphp/amfphp/browser
No menu a esquerda escolha o serviço Teste, selecione o método totalUsuarios e clique no botão call, na parte de baixo verifique o resultado da solicitação, que deve aparecer o número total de resultados da tabela usuário.

————————————————————————————–

Revisando

Vimos como criar um serviço no AMFPHP e testá-lo com o auxílio da ferramenta AMFPHP Browser.

————————————————————————————–

Por enquanto é isso, aguarde a segunda parte deste seqüencial que abordará sobre a criação do login no AMFPHP 1.9.

Baixe aqui os arquivos fontes

Caso tenha alguma dúvida utilize o fórum.
Abraços, Renan Fretta – renan@mxstudio.com.br


3 Comments to Seqüencial: Flex 2 e AMFPHP 1.9 B2 AMF3 – Parte 1

  1. tadeu's Gravatar tadeu
    Maio 31, 2008 at 1:21 pm | Permalink

    achei o tutorial muito bem feito.

  2. danilobe's Gravatar danilobe
    Setembro 22, 2009 at 4:05 pm | Permalink

    na hora de testar a minha classe esta acontecendo o seguinte erro:(Object)#0
    message = “faultCode:AMFPHP_RUNTIME_ERROR faultString:’mysql_num_rows(): supplied argument is not a valid MySQL result resource’ faultDetail:’C:\xampp\htdocs\sequencial_flex_amfphp\amfphp\services\sequencial_flex_amfphp\Teste.php on line 14′”
    name = “Error”
    rootCause = (null) o que pode ser

    CONEXAO=$CONEXAO-> getConexao();
    }
    public function TotalProdutos(){
    $sql=”select * from administrador”;
    $rs = mysql_query($sql);
    return mysql_num_rows($rs);

    }
    }
    ?>

  3. Renan's Gravatar Renan
    Março 26, 2010 at 8:28 am | Permalink

    É erro na sua programação em PHP: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Deixe um Comentario

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

Renan Fretta

Desenvolvedor de Aplicativos Ricos para Internet (RIA) em Adobe Flex, com PHP (AMFPHP) e Java (BlazeDS).

Últimos Artigos do Autor