It looks like as of bcompiler 0.9.3 geoff's code above works correctly with the output:
static
construct
testOut
Compilador de PHP bytecode
- Introdução
- Instalação/Configuração
- Constantes pré-definidas
- bcompiler Funções
- bcompiler_load_exe — Lê e cria classes a partir de um arquivo exe do bcompiler
- bcompiler_load — Lê e cria classes a partir de um arquivo compactado pelo bzip
- bcompiler_parse_class — Lê o bytecode de uma classe e chama para uma função do usuário
- bcompiler_read — Lê e cria uma classe a partir de um handle de arquivo
- bcompiler_write_class — Escreve uma classe definida como bytecode
- bcompiler_write_constant — Escreve uma constante definida como bytecodes
- bcompiler_write_exe_footer — Escreve na posição de início e continua até o fim do arquivo de tipo EXE
- bcompile_write_file — Escreve um arquivo-fonte do PHP como bytecodes
- bcompiler_write_footer — Escreve o caracter \x00 para indicar o Fim dos dados compilados
- bcompiler_write_function — Escreve uma função definida como bytecodes
- bcompiler_write_functions_from_file — Escreve todas as funções definidas em um arquivo como bytecodes
- bcompiler_write_header — Escreve o cabeçalho do bcompiler
- bcompiler_write_included_filename — Escreve os bytecodes de um arquivo incluído (via include)
rustushki
29-Dec-2010 03:05
geoff at spacevs dot com
07-Apr-2010 09:08
static vars on classes do not work with bcompiler, eg.
<?PHP
class testClass {
static public $i;
static public function testStatic() {
echo "static\n";
testClass::$i = new testClass();
}
public function __construct() {
echo "construct\n";
}
public function testOut() {
echo "testOut\n";
}
}
testClass::testStatic();
testClass::$i->testOut();
?>
the call to "testOut" will silently fail.
