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

  • Desmonte a compactação.
  • Entre no diretório criado e execute os seguintes comandos:
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… :)