CucaDigital.com.br

Programação

Integrando Flash + PHP via Zend AMF

by Claudney on jun.09, 2009, under AMF, Dicas, Flash, PHP, Programação, Web, Zend Framework

integrando-flash-php-via-zend-amf

Em primeiro lugar devemos baixar a versão mais estável do Zend Framework (ZF).
Pode ser baixada através deste link: http://www.zendframework.com/download/latest, neste exemplo que vamos demostrar foi utilizado a versão: ZendFramework-1.8.2-minimal.

Esse tutorial visa somente iniciar como fazer integração via AS3 e o PHP através do Zend AMF, com isso não iremos detalhar o funcionamento do Framework, mas e ai como vou criar minha aplicação, tenho que configurar o ZF certo?

Correto iremos utilizar a ferramenta que gera um esqueleto da aplicação do ZF sem a necessidade de configurarmos manualmente, mas vale a pena dar uma lida na documentação do framework que possui uma infinidade de recursos disponíveis pode conferir em: http://www.zendframework.com/docs/quickstart.

Concluído o download descompacte o arquivo em uma pasta de sua preferência e através do prompt de comando acesse a pasta bin e execute o seguinte comando:

 
# linux:
zf.sh create project amf
 
# Windows:
 zf.bat create project amf
 

Após a execução do comando acima ele vai gerar a seguinte estrutura de diretórios, que é a estrutura padrão para as aplicações do ZF.

amf
|-- application
| |-- Bootstrap.php
| |-- configs
| | `-- application.ini
| |-- controllers
| | |-- ErrorController.php
| | `-- IndexController.php
| |-- models
| `-- views
| |-- helpers
| `-- scripts
| |-- error
| | `-- error.phtml
| `-- index
| `-- index.phtml
|-- library
|-- public
| `-- index.php
`-- tests
|-- application
| `-- bootstrap.php
|-- library
| `-- bootstrap.php
`-- phpunit.xml

Após a criação desta estrutura copie a pasta Zend que se encontra dentro da pasta libray de onde você descompactou o arquivo do ZF, para a pasta library da sua aplicação, e em seguida mova a estrutura para a sua pasta htdocs do seu servidor web.

Após seguir os passos acima acesse o endereço: Exemplo: http://localhost/amf/public, deverá gera uma janela exemplo a mostrada abaixo:

amf1

Agora já podemos criar nosso servidor AMF para a integração com o Flash.

Agora temos 2 opções podemos criar um arquivo contendo um Objeto que vai conter todos os métodos que queremos que o Flash acesse, ou criar nossa biblioteca de funções. Eu prefiro a primeira opção mas vou dar exemplo das duas.

Vamos criar dentro da pasta library da nossa aplicação dois arquivos:

  • Classe.php - que vai representar nosso objeto
  • Funcoes.php - que será a nossa biblioteca de funções
  • Com os seguintes conteúdos:

     
    <?php
    #ARQUIVO Funcoes.php
    /*
     * BIBLIOTECA DE FUNÇÕES PARA INTEGRAÇÃO COM AMF
     * @author claudney
     */
     
    /**
     * REALIZA SOMA
     * @param integer $x
     * @param integer $y
     * @return integer total
     */
    function soma($x,$y){
        return (int) $x+$y;
    }
     
    /**
     * retorna quadrado de um numero qualquer
     * @param integer $num
     * @return integer total
     */
    function quadrado($num){
        return (int) $num*$num;
    }
    ?>
    ---------------------------------------------
    <?php
    #Arquivo Classe.php
    /*
     * OBJETO PARA INTEGRAÇÃO COM AMF VIA ZEND
     * @author claudney
     */
    class Classe {
     
        /**
         * REALIZA SOMA
         * @param integer $x
         * @param integer $y
         * @return integer total
         */
        public function soma($x,$y){
            return (int) $x+$y;
        }
     
        /**
         * retorna quadrado de um numero qualquer
         * @param integer $num
         * @return integer total
         */
        public function quadrado($num){
            return (int) $num*$num;
        }
     
    }
    ?>
     

    Em seguida abra o arquivo index controller e altere o método indexAction adicionando as seguintes linhas, para que fique como mostrado abaixo:

     
     public function indexAction()
    {
        require "Funcoes.php";
        require "Classe.php";
        $server = new Zend_Amf_Server();
        $server->setClass('Classe') //aqui adicionamos o nosso objeto no servidor
                ->addFunction('soma') //aqui adicionamos a funcao soma
                ->addFunction('quadrado'); //e por ultima a funcao quadrado
        $response = $server->handle();
        echo $response;
        exit;
    }
     

    Se executar o endereço: novamente sera solicitado para fazer donwload de um arquivo cuja o conteúdo será "Zend AMF endpoint", ou seja somente o Flash ou Flex poderá acessar seu conteúdo.

    Agora só nos resta o Flash, crie um filme com os seguintes elementos:

  • 4 - Input Texts
  • 4 - Textos Estaticos
  • 1 - Botao
  • A organize-os para que fique semelhante a imagem abaixo:

    amf2

    Nome os inputs como: funcao, param1, param2, retorno e botao, que utilizaremos em nosso Action Script.

    Apos criar todos os elementos vamos criar nosso Action Script 3:

     
     
    //Imports de bibliotecas
    import flash.display.MovieClip;
    import flash.events.*;
    import flash.net.NetConnection;
    import flash.net.Responder;
     
    botao.addEventListener(MouseEvent.CLICK, minhaFuncao);
     
    function minhaFuncao(e:MouseEvent):void{
     	var gateway:String = "http://127.0.0.1/amf/public/"; //ENDERECO DO SERVIDOR AMF
    	var connection:NetConnection;
    	var responder:Responder;
     
    	responder = new Responder(onResult, onFault); //RESPONDER COM FUNCOES DE CALLBACK
    	connection = new NetConnection; //CRIAMOS UMA NOVA CONEXAO
    	connection.connect(gateway); //APONTAMOS PARA O ENDERECO QUE FOI INFORMADO
     
    	//CRIAMOS A CHAMADA DINAMICA PARA OS METODOS DO PHP
    	connection.call(funcao.text, responder,param1.text,param2.text);
    }
     
    //ABAIXOA FUNCAO DE CALLBACK QUE É EXECUTADO NO
    //QUANDO O METODO RETORNA SUCESSO
    function onResult(result:Object):void {
          retorno.text = String(result);
    }
     
    //FUNÇÃO QUE RETORNA ERRO CASO OCORRA
    function onFault(fault:Object):void {
        retorno.text =(String(fault.description));
    }
     

    Agora podemos executar o nosso arquivo e chamar as funções e ver o resultado diretamento no flash, sem ter que gerar XML´s ou arquivos TXT´s para essa integração.

    Utilizando a chamada do metodo do Objeto:
    amf3
    Utilizando a chamada por função:
    amf4

    Se quiser chamar diretamente dentro do Flash basta utilizar o comando:

     
    connection.call('Objeto.metodo', responder,param1....paramN);
    //ou
    connection.call('funcao', responder,param1....paramN);
     
    1 Comment :, , , , , , , more...

    Programação Orientada a Objetos com PHP (Parte 2)

    by Claudney on mar.23, 2009, under Dicas, PHP, Programação, Web

    programacao-orientada-a-objetos-com-php-parte-2

    Preparando o Ambiente

    A instalação do servidor segue o famoso padrão NNF (Next,Next, Finish), para quem for utilizar o NetBeans é necessario ter o Java JDK instalado no computador.

    Logo após a instalação sera criado no seu menu iniciar (se estiver utilizando windows) os atalhos para o Xampp e para o NetBeans, primeiro vamos abrir o Xampp Control que exibira uma imagem semelhante o exemplo abaixo:

    Xampp

    Para iniciar o servidor Apache basta clicar no primeiro botão "start" e pronto já podemos iniciar a criação do nosso projeto.

    Com o NetBeans aberto clique em Arquivo -> Novo Projeto ou tecle Ctrl+Shift+N.

    Na janela que aparece selecione Aplicativo PHP e clique em próximo sera exibido uma janela como mostrado abaixo.

    NetBeans PHP

    Em nome do projeto digite "Projeto_OO"

    Na pasta de códigos-fonte selecione o diretorio "htdocs" que foi criado dentro da pasta de instalação do Xampp e clique em finalizar, sera mostrado uma tela como a  abaixo:

    netbeans2

    Pronto agora já estaremos pronto para codificar nosso primeiro projeto utilizando OO.

    Leave a Comment :, , , more...

    Programação Orientada a Objetos com PHP (Parte 1)

    by Claudney on mar.10, 2009, under Dicas, PHP, Programação, Tecnologia, Web

    programacao-orientada-a-objetos-com-php-parte-1

    Existe vários conceitos sobre POO (Programação Orientada a Objetos), tem como principais objetivos reduzir a complexidade no desenvolvimento de software e aumentar sua produtividade.

    Atualmente a maioria das linguagues de programação utilizam este recurso a fim de melhor a organização e entendimento dos fontes e funcionamento do programa.
    Alguns exemplos:

    • C++
    • Java
    • PHP
    • VB.NET C#
    • Ruby

    A orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.

    Principais conceitos:

    • Classe - Representa um ou mais objetos.
    • Objeto - Representa uma instancia de uma classe resumindo "a classe em ação/uso".
    • Atributos - Conjunto de carateristicas de um objeto.
    • Métodos - Controla todos os estados e atributos do objeto.

    Os termos citados acima são somente para um entendimento básico, veremos eles mais a frente em exemplos práticos e funcionais.

    Então vamos ao que interessa: Para executar scripts PHP em sua máquina vamos precisar de um IDE php qualquer e um servidor Web.
    Para servidor web nos exemplos mostrados foi utilizado o Xampp e Como Editor o NetBeans 6.5.
    Podendo baixar eles atraves destes links:

    Se não quiser utilizar o NetBeans pode utilizar qualquer outra IDE.

    Na segunda parte vamos instalar configurar nosso servidor web e criar nosso primeiro projeto utilizando orientação a objetos.

    Leave a Comment :, , , , more...

    HTTP Autentication via PHP

    by Claudney on fev.16, 2009, under Dicas, PHP, Programação

    http-autentication-via-php

    Autenticação via HTTP no PHP só é disponível quando o ele é for executado como módulo do Apache, enviando um header de "Authentication Required" que solicita uma janela pedindo usuário e senha no navegador.Para utilização deste método de autenticação é necessario que o PHP esteja sendo executado como módulo no Apache.

    Aqui vou demostrar um breve tutorial para utilizar este recurso em suas aplicações web.

    Enviar o header solicitando a autenticação no nagedador.

     
    <?php
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: '.
                  ' Basic realm="Informe seu usuário e senha de acesso"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Mensagem caso o usuário clique no botão cancelar';
        exit;
      } else {
        echo "Olá, {$_SERVER['PHP_AUTH_USER']}.";
        echo "Você digitou {$_SERVER['PHP_AUTH_PW']} como sua senha.";
      }
    ?>
     

    Quando executado ele guarda o usuario senha nas variaveis: PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE que ficam armezanadas em $_SERVER,
    para não solicitar o usuário e senha todas em todas as páginas solicitadas após a primeira autenticação.

    Diga adeus as janelinas de login em HTML :)

    Abaixo uma notinha do bem básica direto do php.net:

    Cuidado com browsers Internet Explorer bugados por aí. Eles parecem muito minuciosos sobre a ordem dos cabeçalhos. Enviar o cabeçalho WWW-Authenticate antes do cabeçalho HTTP/1.0 401 resolve isso por enquanto.

    Leave a Comment :, , , , , , more...

    Gerando gráficos com o Google Chart API

    by Claudney on jan.19, 2009, under Dicas, Programação, Tecnologia, Web

    gerando-graficos-com-o-google-chart-api

    A API do Google Chart permite você gerar gráficos dinamicamente sem ter que instalar nenhum pacote adicional em seu aplicativo ou servidor.

    E tem grandes facilidados como: Não precisa gerar XML ou alimentar Javascripts para gerar os gráficos.

    É necessario somente uma imagem, uma imagem???

    (continue reading...)

    Leave a Comment :, , , more...

    Olá, mundo!

    by Claudney on out.31, 2008, under Dicas, Java, Linux, Mac, Mobile, PHP, Programação, Tecnologia, Web

    Bem-vindo ao CucaDigital.com.br. Esse é o seu primeiro post que marca o inicio de minhas publicações vamos ver como eu vou me sair nessa nova empreitada.

    Leave a Comment :, , , more...

    

    Esta procurando algo?

    Use o formulário abaixo para realizar a sua pesquisa:

    Assine nosso feed, e recebe tudas as novidades do nosso site diretamente no seu e-mail.

    Comentários