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