Introducción

Advertencia

Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombres de sus funciones y todo lo documentado sobre esta extensión, puede cambiar en una futura edición de PHP sin previo aviso. El uso de esta extensión queda bajo su propia responsabilidad.

Bcompiler ha sido escrito por varias razones:

  • Para codificar un script completamente en una aplicación PHP propietaria
  • Para codificar algunas clases y/o funciones en una aplicación PHP propietaria
  • Para habilitar la producción de aplicaciones php-gtk que podrían usarse en escritorios clientes, sin la necesidad de un php.exe.
  • Para hacer el estudio de viabilidad para un convertidor de PHP a C
La primera de las metas se alcanza usando las funciones bcompiler_write_header(), bcompiler_write_file() y bcompiler_write_footer(). Los archivos de códgio de bytes pueden ser escritos como no comprimidos o planos. Para usar el código de bytes generado simplemente debe incluirlo con sentencias include o require.

La segunda de estas metas se alcanza usando las funciones bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), y bcompiler_load(). Los archivos de código de bytes pueden ser escritos como no comprimidos o planos. bcompiler_load() Lee un archivo de código de bytes bzip comprimido, el cuál tiende a ser 1/3 del tamaño del archivo original.

Para crear archivos tipo EXE, bcompiler tiene que usarse con un archivo sapi modificado o una versión de PHP que haya sido compilada como un biblioteca compartida. En este escenario, bcompiler lee el código de bytes comprimido del final del archivo exe.

Bcompiler puede mejorar el rendimiento en un 30% cuando se usa solamente con código de bytes sin comprimir. Pero tenga en cuenta que el código de byte sin comprimir puede ser hasta 5 veces más largo que el código fuente original. Usar la comprensión de código de bytes puede ahorrar espacio, pero la descompresión requiere mucho más tiempo que analizar una fuente. bcompiler tampoco realiza ninguna optimización de código de byte, esto podría añadirse en el futuro...

En términos de protección de código es seguro decir que sería imposible recrear el código fuente exacto desde donde se construyó, y sin los comentarios que acompañan al código fuente. Sería inútil usar los códigos de bytes de bcompiler para recrear y modificar una clase. Sin embargo, es posible recuperar información de un archivo de código de bytes contruido con bcompiler - por lo que no ponga sus contraseñas privadas o similares en él.