Nesse post irei mostrar como criar uma aplicação em PHP-GTK compilada usando o bcompiler no linux (ubuntu 8.04). A fonte para o tutorial de instalação do bcompiler é o artigo do Patrick Mendes no site do PHP-GTK Brasil.
Instalando o bcompiler no seu ubuntu 8.04
kirotawa@xxx:~$wget -c http://pecl.php.net/get/bcompiler-0.8.tgz
kirotawa@xxx:~$tar -xzvf bcompiler-0.8.tgz
kirotawa@xxx:~$cd bcompiler-0.8
kirotawa@xxx:~$phpize
kirotawa@xxx:~$./configure
kirotawa@xxx:~$make
kirotawa@xxx:~$make install
kirotawa@xxx:~$echo ‘extension=bcompiler.so’ >> /etc/php5/cli/php.ini
Lembre-se de um detalhe o comando make install deve ser realizado como root. Para não haver nenhum problema faça tudo como root, só pra garantir.
Agora que você instalou o bcompiler é hora de usar ele. Antes vamos criar uma aplicação simples em PHP-GTK.
CODE
<?php
$janela = new GtkWindow();
$janela->set_default_size(100,50);
$janela->set_title("Janela Compilada");
$Label = new GtkLabel("Nome");
$Nome = new GtkEntry();
$Botao = new GtkButton("_OK",true);
$box = new GtkHbox();
$box->add($Label);
$box->add($Nome);
$box->add($Botao);
$janela->add($box);
$Botao->connect_simple('clicked','fExibeTexto',$Nome );
$janela->show_all();
$janela->connect_simple('destroy', array('gtk', 'main_quit'));
function fExibeTexto($campotexto)
{
$texto = $campotexto-> get_text();
$dialog = new GtkMessageDialog(null, Gtk::DIALOG_MODAL,
gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, $texto );
$dialog->run();
$dialog->destroy();
}
Gtk::main();
?>
O código acima é só pra explicar. O que ele faz é criar uma janela com um GtkLabel, GtkButton e um GtkEntry. Quando o botão é pressionado abre-se um GtkMessageDialog com o conteudo do GtkEntry.
Agora vamos a parte que realmente interessa. Criar a tal aplicação compilada. Criamos um arquivo com o seguinte contéudo:
CODE
<?php
$arq = fopen("janela.phb", "w");//Cria o arquivo que conterá o bytecode
bcompiler_write_header($arq); //Escreve a parte do cabeçalho do arquivo bcompiler.
bcompiler_write_file($arq, "teste1.php"); //Essa função lê o arquivo que você quer gera o bytecode e escreve no arquivo recem criado
bcompiler_write_footer($arq); //Escreve o caracter \x00 para indicar o Fim dos dados compilados.
fclose($arq); //Fecha o arquivo
?>
Agora que temos o códio para nossa aplicação, e temos o código que vai gerar a aplicação compilada. é só digitar:
kirotawa@xxx:~$php bcompilerteste.php
Ele vai gerar o arquivo janela.phb. Para executar essa janela você pode digitar:
kirotawa@xxx:~$php janela.phb
Ou fazer o que eu fiz setar que os arquivos .phb devem ser abertos com o php. Pronto agora você pode proteger as suas aplicações em PHP-GTK. Para saber mais dá uma conferida nas referências abaixo.
Referências
[...] os mesmos para o PHP-GTK. O primeiro passo é gerar o .phb, ou seja, o arquivo php bytecode (ver post anterior). O segundo passo é ler o arquivo .phb e usá-lo de acordo com o que foi implementado no .php [...]
muito bom artigo man, valeu foi de muita utilidade pra mim.
Grato pelo post, porém gostaria de saber como fazer o mesmo em ambiente windows (desenvolvimento e uso)
vlw
Olha não sei te dizer ao certo, mas vasculhando na comunidade do PHP-GTK2 achei esse link: http://wildphp.free.fr/wiki/doku.php?id=howto:embeding_a_php_source_into_a_windows_executable_file , dá uma olhada e vê se te ajuda. Confesso que esse meu post é um tanto antigo e eu nem estou mais mexendo com php-gtk2 atualmente.
Boa sorte aê!!