Larback - Retornando conhecimento

Saudades da época que difícil era HTML.

PHP-GTK Criando soluções desktop em PHP

Já pensou em utilizar php para produzir soluções desktops multiplataformas? Pois é... isso é possível e bem facinho, utilizando PHP-GTK. Utilizando esta solução, conseguimos criar aplicativos identicos aos desenvolvidos em delphi, vb ou java utilizando essa linguagem maravilhosa que aprendemos a amar durante os anos que é o PHP. Vou mostrar neste primeiro artigo como criar um formulário e um label (o famoso 'hello word') e durante as férias tentarei ir aprofundando no assunto. Antes de tudo, baixe e instale o PHP-GTK daqui http://www.php-gtk.com.br/windows - Se você não tem muita experiência em instalações e configurações este link é altamente recomendado por já trazer no pacote todos os pre-requisitos. A instalção é bem simples e o site citado explica detalhadamente como proceder em diversos sistemas operacionais, então deixarei a parte de instalação por conta deles e irei direto ao código:
<?php
$janela = new GtkWindow();
$janela->set_title('PHP para Desktop');
$janela->connect_simple('destroy', array('gtk', 'main_quit'));

$lblHello = new GtkLabel("Bem vindo a programação desktop em PHP\r\n'Hello world!'");
$janela->add($lblHello);
$janela->maximize();
$janela->show_all();
Gtk::Main();
?>
Os <br> não fazem parte do código, são parte de um bug que eu ainda não corrigi =] $janela = new GtkWindow(); Aqui criamos widget window (pode chamar de formulário se isso te agradar): a varável $janela obtém o novo objeto definido. $janela->set_title('PHP para Desktop'); O método set_title é chamada para alterar o título do formulário. Se você não está acostumado com orientação à objetos em PHP deve estranhar um pouco a '->'. É ela que utilizamos para separar o objeto do método, no lugar do tradicional '.' que utilizamos em java. $janela->connect_simple('destroy', array('gtk', 'main_quit')); O sinal "destroy" é conectado com o metodo statico Gtk::main_quit. Ele basicamente diz ao GTK para sair do loop principal quando a janela é fechada/destruída, ou seja, quando fecharmos esta janela desejamos que o aplicativo seja encerrado. $lblHello = new GtkLabel("Bem vindo a programação desktop em PHP\r\n'Hello world!'"); Aqui criamos um label, um widget específico para a exibição de textos. $janela->add($lblHello); Adicionamos o label na janela que criamos $janela->maximize(); Colocamos a janela maximizada... porque? Por que sim uai =] $janela->show_all(); O método show_all torna a janela visivel, embora nos a tenhamos configurado, ela ainda não estava visível. Gtk::Main(); Após tudo estar definido, nós devemos nos certificar que a janela permanece aberta e responde a interação do usuário. Um script PHP normal iria terminar e parar neste ponto, mas nós queremos que ele continue sendo executado: Para isto, o loop principal do GTK precisa ser iniciado. Ele mantém a aplicação sendo executada e esperando por eventos do usuário. Se um evento ocorre, ele delega ele para os callbacks correspondentes. Para executar sua aplicação basta entrar no diretório onde você instalou o php gtk e digitar php <nome do seu arquivo.php> (estou considerando que você salvou o arquivo na mesma pasta, ok?)