Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

PHP-GTK: Aplicações Gráficas em PHP

Para prosseguir com o download do artigo, é necessário realizar login utilizando o Facebook ou Google. Este procedimento é totalmente seguro e nossa aplicação é certificada por ambos os serviços. Após a autenticação, você será direcionado de volta à nossa página para continuar o download.

Login com Facebook Login com Google

Resumo

Introdução PHP O PHP é provavelmente hoje a linguagem para soluções Web mais utilizada no mundo todo. É uma linguagem altamente flexível e que contém centenas de funcionalidades para os mais diferentes objetivos: Manipulação de strings, de arquivos, de arrays; Possui conectividade com uma série de Bancos de dados, como Postgres, Mysql, Oracle, Sybase, Interbase, Sql Server, ODBC, informix e firebird, dentre outros. O PHP é utilizado como uma linguagem server-side embutida em código HTML. Aplicações em PHP rodam em um browser. Mais informações em http://www.php.net Gtk Gtk é um toolkit, uma biblioteca escrita em C, com sua arquitetura orientada a objetos. Seu propósito é servir ao desenvolvedor como base para criar aplicações gráficas. O Gtk foi concebido originalmente para o desenvolvimento do GIMP (GTK = Gimp ToolKit), software de edição de imagens. Mas se tornou tão popular que hoje grande parte das aplicações Linux são escritas em C utilizando a biblioteca Gtk, como o próprio Gnome (gerenciador de janelas). Mais informações em http://www.gtk.org PHP-GTK O PHP-GTK nada mais é do que uma extensão da linguagem PHP que permite-nos utilizar as classes do Gtk. Dessa forma, podemos escrever um programa em PHP utilizando classes gráficas para montar um ambiente com janelas e botões, rodando localmente, o que nos permite além de tudo isso, acessar recursos da máquina cliente, como: disco, portas seriais, etc.. Ambos PHP e GTK são multi-plataforma, logo o PHP-GTK também é. Assim uma aplicação escrita em PHP-GTK rodará em Linux e Windows da mesma forma. Mais informações em http://gtk.php.net Conceitos gráficos Para desenvolver aplicações gráficas é necessário tomarmos conhecimento de alguns termos comuns na área, veja: Widgets Widgets (Windows gadgets) são cada um dos componentes visuais utilizados para construção de uma aplicação gráfica: botões, listas, frames, janelas, etc. Container Um container, ou contêiner é um widget que pode conter ou receber em seu interior outros componentes. Alguns exemplos de containers são: frames, Caixas, Janelas, etc. Signal Um sinal é uma mensagem emitida por um widget, gerada pela interação do usuário. Exemplo: quando o usuário clica em um botão, o botão emite o sinal chamado "clicked". Callback Callback é uma função criada pelo usuário para reagir aos sinais emitidos pelos widgets. Instalação No site http://gtk.php.net ou em www.php-gtk.org.br (site da comunidade brasileira), você encontra maiores informações de como instalar o PHP-GTK em Linux ou Windows. Aqui iremos abordar a instalação de um pacote pré-compilado para Linux que vem junto com o CD da revista. Este pacote traz o PHP-GTK compilado com suporte nativo ao MySQL e ao PostgreSQL. Veja como instalar: Copie do CD o arquivo php-gtk.tar.gz para o diretório /usr/local # cd /usr/local # tar -xzvf php-gtk.tar.gz # chmod 777 php-gtk -Rf # ln -s /usr/local/php-gtk/php/bin/php /usr/bin/php # exit Agora, para testar e ver se o PHP-GTK está rodando corretamente. # php /usr/local/php-gtk/sample/gtk.php Meu Primeiro Programa Para criar um ambiente gráfico, é necessário conhecer as classes do Gtk. Por exemplo: GtkWindow representa uma janela; GtkButton, representa um botão; GtkLabel representa um rótulo de texto. Todas classes são claramente documentadas no site do PHP-GTK, juntamente com seus atributos e seus métodos. A seguir um programa que consiste em uma janela contendo um botão chamado "Clique aqui". Quando o usuário clica neste botão, abre-se outra janela contendo o texto "Olá Mundo". Arquivo exemplo1.php set_default_size(100,100); // rótulo de texto $texto = new GtkLabel('Olá Mundo'); $popup->add($texto); // coloca o texto dentro da janela $popup->show_all(); // exibe a janela popup } // cria a janela principal $janela = new GtkWindow; // cria um botao $botao = new GtkButton ('Clique aqui'); // liga o sinal de clicar à função NovaJanela $botao->connect_object('clicked', 'NovaJanela'); // coloca o botão dentro da janela $janela->add($botao); // exibe a janela $janela->show_all(); // inicializa aplicação gtk::main(); ?> Para executar a aplicação, digite: # php exemplo1.php Glade: Desenvolvimento visual rápido Para acelerar o desenvolvimento de aplicações em PHP-GTK existe o Glade, ferramenta muito conhecida no Linux para desenhar o visual de aplicações gráficas GTK. Para a instalação do Glade, o CD da revista acompanha o arquivo glade-0.6.4.tar.gz. Basta salvar o arquivo no diretório /usr/local/src e instalar da seguinte forma: # cd /usr/local/src # tar -xzvf glade-0.6.4.tar.gz # cd glade-0.6.4 # ./configure # make # make install Rodando o Glade: # glade Programando com o auxílio do Glade. A seguir um exemplo de programa em PHP-GTK utilizando uma interface desenhada no Glade. A Imagem ao lado exibe uma interface construída no glade (arquivo tela.glade). Este arquivo pode ser invocado dentro do código PHP-GTK, onde podemos manipular cada um dos objetos que fazem parte desta interface. Veja o campo textcodigo, do tipo GtkEntry (caixa de entrada de dados). Obter um elemento é o mesmo que criar o objeto dentro do código, para obter o objeto, basta saber seu nome (propriedade name). E então poderemos utilizar todos seus métodos e propriedades. Arquivo exemplo2.php get_widget(`window1´); /* obtendo o objeto textcodigo $textcodigo = $interface->get_widget(`textcodigo´); */ // exibindo a janela $janela->show_all(); // inicializando a aplicação gtk::main(); ?> Executando a aplicação: # php exemplo2.php Temas O PHP-GTK permite aplicar temas ou skins nas aplicações. Para conseguir um tema, você pode baixar do site: http://gtk.themes.org. Faremos o exemplo a seguir com o Tema AquaGraphite, que acompanha o CD (arquivo AquaGraphite.tar.gz). Para aplicar o tema, descompacte o arquivo no mesmo diretório da aplicação: # tar -xzvf AquaGraphite.tar.gz O exemplo a seguir, chama-se temas.php, utiliza uma interface desenhada no Glade chamada de temas.glade. Veja em negrito, a única linha que teve de ser adicionada neste programa para que o tema fosse aplicado: Arquivo temas.php Aplicações em PHP-GTK No site http://gtk.php.net/apps, você encontra diversas aplicações construídas em PHP-GTK. Lá você encontra o Teak (ferramenta de e-mail), o PHPMole (editor de código) e também o Agata Report, uma ferramenta livre para geração de relatórios, disponível em www.agata.org.br, e que iremos nos aprofundar na próxima edição. Autor Pablo Dall'Oglio Bacharelando em Análise de Sistemas pela UNISINOS. Um dos coordenadores do projeto GNUTeca e também o criador do projeto Agata Report. Trabalha como Desenvolvedor e Consultor de Tecnologia, realizando prospecções, análise e implantação de sistemas para gestão acadêmica e para gestão de acervos bibliográficos pela Solis (www.solis.coop.br). Especialista em Bancos de Dados, orientação a objetos, PHP e PHP-GTK. Estará lançando um livro sobre PHP-GTK nos próximos mêses pela editora Novatec.