Revista Do Linux
 


 
EDIÇÃO DO MÊS
 CD do Mês


 Mensagem ao Leitor
 Capa
 Entrevista
 Estudo de Caso 1
 Estudo de Caso 2
 Documentação
 Hardware
 Software
 Programação
 Redes
 Ferramenta
 Desenvolvimento
 Segurança
assinantes
 

Aplicações Standalone com PHP-GTK

Uma solução para aplicações gráficas standalone usando a eficiência do PHP

Até agora o grande uso que se deu à linguagem PHP é aquele que você já conhece: uma linguagem de script, cujos resultados visíveis para o usuário (até meados de 2001) ficavam em sua maioria restritos a um Web Browser. Foi quando Andrei Zmievski resolveu criar uma extensão desta linguagem, o PHP-GTK. Esta extensão permite que você faça aplicações gráficas client-side e independentes de plataforma. O PHP-GTK foi criado para provar que o PHP é uma linguagem de grandes propósitos, além da fronteira de um browser. O PHP-GTK não serve para exibir aplicações GTK em um browser, e sim para construir aplicações gráficas standalone. Veja a seguir alguns termos comuns:

  • Widget é um termo usado no mundo do X (o "modo gráfico" do Linux e outros Unices) e serve para representar uma caixa de texto, label, frame, window ou qualquer outro componente GUI (Graphical User Interface - Interface Gráfica de Usuário). Os Widgets do GTK (Gnome Toolkit) são todos derivados da base abstrata de classes GtkWidget com seus métodos, sinais e propriedades.

  • Signals são notificações (mensagens) emitidas por widgets. Quando se programa Interfaces Gráficas (GUI), geralmente é necessário responder a ações realizadas pelo usuário ou iniciadas dentro do próprio programa. Quando um usuário clica em um botão, um sinal é emitido.

  • Callbacks são funções que são registradas pelo programador para reagir a sinais emitidos por widgets.

Mãos à Obra

Para programar em PHP-GTK, é necessário instalar o PHP e, logo em seguida, o PHP-GTK. Claro que o mais interessante é compilar junto um banco de dados como PostgreSQL para trazer os resultados do Banco para interface gráfica. Lembre-se que o PHP-GTK por ser uma extensão, traz junto consigo a enorme gama de funções do PHP, como conexão a diversos Banco de Dados, manipulação de strings, etc.

Veja instruções detalhadas para instalação em: gtk.php.net. Conteúdo original em inglês, mas que possui boa parte já traduzida para o português.

Basicamente, um programa PHP-GTK carrega uma biblioteca compilada com as diversas classes do GTK, juntamente com métodos e propriedades, valendo-se destes para construir a aplicação através de widgets (janelas, botões, ComboBoxes...) e sinais. Utilizamos o PHP na linha de comando para rodar as aplicações phpGTK. Exemplo: #php programa.php

Nosso primeiro código em phpGTK: Uma janela que permite ao usuário digitar um texto que será impresso na linha de comando.



<?

// carrega biblioteca

if (strtoupper(substr(PHP_OS, 0, 3)) == `WIN')

        dl(`php_gtk.dll');

else

        dl(`php_gtk.so');

function ImprimeInput()

{     // é possível utilizar estrutura global

$input;  // de classes p/ não usar global

echo `Digitou ` . $input->get_text() . "\n";

//imprime no shell

   return;

}

$window = &new GtkWindow;  // instância janela

$window->set_title(`Primeira Janela'); // título da

janela

$window->set_border_width(0); // borda da janela

$window->set_default_size(130, 60); // dimensões


$vbox = &new GtkVBox(); // monta caixa vertical

$vbox->show(); //exibe

$window->add($vbox); // adiciona caixa à janela


// instancia label

$texto = >new GtkLabel(`Teste Para revista do Linux');

$vbox->pack_start($texto); // joga label em caixa vert.

$texto->show(); // exibe label


$input  = &new GtkEntry(); // cria input para ent. de dados

$vbox->pack_start($input); // joga input em caixa vert.

$input->show(); // exibe input

// cria botão

$button = &new GtkButton(`Imprime no shell');

$button->show();

// liga o sinal clicked à função ImprimeInput

$button->connect_object(`clicked', `ImprimeInput');

$vbox->pack_start($button); // joga botão na caixa vert.


$window->show(); // exibe a janela


Gtk::main();   // loop princpal do Gtk, aguarda

                // por eventos causados pelo usuário

?>

Agata Report: uma aplicação PHP-GTK

O Agata Report é, além de um editor de consultas SQL, um gerador de relatórios PostScript e em modo Texto. É escrito em PHP-GTK, orientado a objetos e usa a Pear::DB uma classe abstrata para conexão com diversos bancos de dados homologada pelo próprio PHP group.

Portanto além de gráfico, o Agata Report já nasce tendo uma gama de bancos de dados grandes a explorar. Ele se conecta ao banco, lista suas tabelas, permite ao usuário criar ligações entre elas, utilizar funções, ordenar por campos, agrupar, criar restrições para este ou aquele campo e, por fim, executar a consulta.

A versão 2.0 também possui um editor de consultas mescladas para documento. Você escreve o documento, insere variáveis da consulta SQL e mescla o resultado para um documento PostScript (mala direta, por exemplo), utilizando a PsLib.

Para saber mais


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux