sempre Realimentação positiva
Um dos grandes problemas com linguagem interpretada é na hora de vender a aplicação. Ou seja, além de vendê-la, você disponibiliza o código fonte.
Em alguns casos o código aberto não é uma solução muito estratégica.
Para isso existe uma alternativa em pecl: bcompiler.
Este possibilita, dentre várias alternativas, a pré-compilação e compilação do código PHP.
Instalando no Linux
Obs: Esta demonstração será na distro ubuntu 9.10 com php5 e bcompiler0.9.2.
Package necessários:
php5-dev libbz2-dev
Para instalar:
sudo apt-get install php5-dev libbz2-dev
Baixando o bcompiler
http://pecl.php.net/package/bcompiler/
Baixe a última versão
phpize ./configure make make test make install
Após esses passos, entre com o gedit ou outro editor e edite o php.ini:
sudo gedit /etc/php5/apache2/php.ini
Adicione no final do arquivo:
extension=bcompiler.so
E reinicie o Apache:
sudo /etc/init.d/apache2 restart
Crie o phpinfo:
Você poderá visualizar as informações da instalação do bcompiler.
<php phpinfo(); ?>
Um pequeno exemplo da utilização do bcompiler
Informações: www.php.net/bcompile
Crie um arquivo myclass.php:
<?php class MyClass { private $test = null; public function setVar($var){ $this->var = $var; } public function getVar(){ return $this->var; } }
Agora criaremos o arquivo compiler.php que transformará nosso arquivo myclass.php em bytecodes:
<?php $fh = fopen("myclass.phb", "w"); bcompiler_write_header($fh); bcompiler_write_file($fh, "myclass.php"); bcompiler_write_footer($fh); fclose($fh); ?>
Execute o compiler.php e o script criará um arquivo myclass.phb.
Pronto! Este arquivo já esta em bytecode.
Seu manuseio é semelhante a um arquivo php.
Exemplo: include “myclass.phb”;
Por hoje é so…
Residente em São Paulo/SP Brasil, Cursando Engenharia da Computação Na Universidade São Judas Tadeu desenvolvedor de PHP a 5 anos e grande utilizador de CakePHP.
Caio Gouveia
February 3rd, 2010 at 9:36 am
Felipe, vc chegou a testar esse bcompiler com frameworks php (cakePHP) ?
Felipe Theodoro
February 3rd, 2010 at 9:40 am
Sim, testei e funciono tudo perfeito…
O problema ta em aplicar isso pois o servidor onde você estará usando esta biblioteca tem que estar com o pacote instalado… Em servidor compartilhado pode esquecer!!! Ps: esta biblioteca é experimental seu comportamento pode ser inesperado vale a pena esperar para o PHP6, pois andei lendo mais afundo e o bcompiler vai sair com uma nova versão estável.
Felipe Girotti
July 7th, 2010 at 2:18 pm
Bem localmente ele gera o código e le o phb, mas no servidor só cria o código, não le ele. Sabe o motivo? Instalei ele no meu servidor que tenho acesso a Root mas ele não le o arquivo .phb
Felipe Theodoro
July 7th, 2010 at 2:49 pm
Verifique as versões… Entre no site do component e verifique o chagelog!!!