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
