Protegendo meu código PHP

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…