Foros del Web » Programando para Internet » PHP »

Compilar mis php (una alternativa)

Estas en el tema de Compilar mis php (una alternativa) en el foro de PHP en Foros del Web. Amigos quisiera saber si existe alguna herramienta free para compilar (no encriptar) mis php, hay algunos que he visto pero... todos son pagos. Saludos...
  #1 (permalink)  
Antiguo 08/03/2006, 17:22
Avatar de AmericoOnL  
Fecha de Ingreso: abril-2002
Mensajes: 43
Antigüedad: 22 años
Puntos: 0
Compilar mis php (una alternativa)

Amigos quisiera saber si existe alguna herramienta free para compilar (no encriptar) mis php, hay algunos que he visto pero... todos son pagos.

Saludos
  #2 (permalink)  
Antiguo 08/03/2006, 17:31
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
¿Te refieres aun servidor para ver tus archivos php?
  #3 (permalink)  
Antiguo 08/03/2006, 17:39
Avatar de AmericoOnL  
Fecha de Ingreso: abril-2002
Mensajes: 43
Antigüedad: 22 años
Puntos: 0
De acuerdo Re

Hola mauled mi amigo, me refiero a tener un compilador para PHP, es decir trasformar el codigo de texto plano del script en formato binario para que, de esta manera la ejecucion sea mucho mas rapida y a la vez segura.
Existen algunos productos para esto en el mercado, como por ejemplo el ioncube PHPEncoder v6.5 o el Roadsend Compiler for PHP.
Desde que fui un niño quice tener mi compilador para PHP
mamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
:(

Saludos
  #4 (permalink)  
Antiguo 09/03/2006, 14:43
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
No se, no creo que tenga que ver con el procedimiento binario, sino en la forma en que cargan los procesos, lo que hace que tu script php tarde, igual aligerando peso a los procesos en ciclo, o de plug ins externos, pueda solucionar eso que estás diciendo.
  #5 (permalink)  
Antiguo 09/03/2006, 14:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No existe compilador para PHP .. los productos como PHP Encoder .. Zend Safety Guard y similares "encriptan" el código sólo . .no es una compilación. Igualmente requieren del interprete PHP por médio + alguna extensión o archivo para "desencriptarlo".

Lamentablemente PHP hasta la fecha es y seguirá siendo "interpretado".

Por cierto el "Roadsend Compiler" no sé que tipo de "compilación" hace .. más parece un "compactador" .. es decir: tu aplicación (de orientación GTK más que para "web" como el uso común de PHP bajo entorno web) + el interprete de PHP .. todo lanzado como un "CGI" cuando ejecutas tu aplicación y a su vez "matado" (el proceso completo) cuando cierras la aplicación. Esto por supuesto habría que confirmarlo ..

Hago el comentario por qué me parece extraño que "Zend" (www.zend.com) la "división comercial" de PHP y la cual dispone de muchos productos para PHP (IDE's, encriptadores, optimizadores ...) no tenga un "compilador" (y más cuando son ellos los creadores del "motor" del interprete de Zend).

Un saludo,

Última edición por Cluster; 09/03/2006 a las 15:02
  #6 (permalink)  
Antiguo 09/03/2006, 15:15
Avatar de AmericoOnL  
Fecha de Ingreso: abril-2002
Mensajes: 43
Antigüedad: 22 años
Puntos: 0
Cita:
Iniciado por Cluster
No existe compilador para PHP .. los productos como PHP Encoder .. Zend Safety Guard y similares "encriptan" el código sólo . .no es una compilación. Igualmente requieren del interprete PHP por médio + alguna extensión o archivo para "desencriptarlo".

Lamentablemente PHP hasta la fecha es y seguirá siendo "interpretado".

Por cierto el "Roadsend Compiler" no sé que tipo de "compilación" hace .. más parece un "compactador" .. es decir: tu aplicación (de orientación GTK más que para "web" como el uso común de PHP bajo entorno web) + el interprete de PHP .. todo lanzado como un "CGI" cuando ejecutas tu aplicación y a su vez "matado" (el proceso completo) cuando cierras la aplicación. Esto por supuesto habría que confirmarlo ..

Hago el comentario por qué me parece extraño que "Zend" (www.zend.com) la "división comercial" de PHP y la cual dispone de muchos productos para PHP (IDE's, encriptadores, optimizadores ...) no tenga un "compilador" (y más cuando son ellos los creadores del "motor" del interprete de Zend).

Un saludo,
Bueno, si fuera encriptado no habria tanto interes de mi parte, pero se da el caso de que en la pagina principal de Roadsend dice esto:
"The Roadsend Compiler for PHP lets you create royalty free executables for distribution without compromising your source code. Compiling PHP to native machine code produces faster, more efficient products for your own use or for sale to your clients." (http://www.roadsend.com/home/index.php?pageID=compiler)

Y en la pagina de Ioncube dice esto:
"Encoding PHP scripts with optimised compiled bytecodes for optimum runtime performance and maximum security." (http://www.ioncube.com/sa_encoder.php)
  #7 (permalink)  
Antiguo 09/03/2006, 15:40
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Por lo que se, eso no es mas que un ofuscador, por ejemplo:
Si tenes la función llemarAPepe( $donde, $cuando, $porque), le pondrá l($d,$c$p) y todo así, cuando lees no entendes nada...esto hace que un file de 10k pase a pesar como mucho 3k.
Ojo, esto es lo que se escucha, no lo he probado. Con lo de optimizar tal vez haga algo para eso...pero no algo que no puedas mejorar vos optimizando código php o sql.

Que tan pesada puede ser una aplicación para necesitar de esto? ...o cambio la pregunta...que tan mal programada puede estar una aplicación para necesitar de esto?.
Ahora, si me decís que queres que nadie vea tu código sería otra cosa (la cual no estoy de acuerdo, por mas que le vendas tu script a MS, ya que trabajas con productos open, y hacer eso me parece "sucio"...pero fuera de esto...).

No le veo utilidad alguna, y si la tuviera habría que pagar por él...no pagamos casi nada trabajando con php, no nos costaría mucho pagar 199 dolares.

Es parte de mi humilde opinión, no es la intención que nadie lo tome a mal.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 09/03/2006, 15:56
Avatar de AmericoOnL  
Fecha de Ingreso: abril-2002
Mensajes: 43
Antigüedad: 22 años
Puntos: 0
De acuerdo Hola amigo

Como nosotros somos desarrolladores, siempre nos interesa que nuestros sistemas ofrezcan la mayor performance posible, siempre el paradigma de php fue ser un lenguaje interpretado, es decir un script que necesita ser parseado, lo cual, digamos, no era lo optimo, la pregunta que cabe hacerse es: Porke fue concebido php para ser interpretado y no compilado? Bueno la respuesta es por portabilidad, de esta forma era mas versatil y podia ser llevado a diversas plataformas.

Pero cuando surge la idea de que tu codigo php puede ser compilado, una serie de posibilidades se abren, por ejemplo:

- Ahora tu codigo se vuelve mas rapido porque la interpretacion ya no existe.
- Puedes desarrollar, si lo deseas, componentes, clases, y tratarlas como caja negra, pues lo unico que necesitas saber es que metodos llamar y que informacion pasar.
- Finalmente, si estas desarrollando comercialmente, puedes alojar tus productos de demo en servidores x y tus clientes hasta pueden bajarse los .php (compilados) .

No se trata de ir en contra de la filosofia del Open Source, simplemente es una alternativa mas para aquellos que kieran tomarla.

Saludos
  #9 (permalink)  
Antiguo 09/03/2006, 16:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
La verdad, si quisiera eso estaría programando con java o .net por pensar solo que esta cualidad los hace mejor alternativa ;)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 10/03/2006, 06:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por AmericoOnL
Bueno, si fuera encriptado no habria tanto interes de mi parte, pero se da el caso de que en la pagina principal de Roadsend dice esto:
"The Roadsend Compiler for PHP lets you create royalty free executables for distribution without compromising your source code. Compiling PHP to native machine code produces faster, more efficient products for your own use or for sale to your clients." (http://www.roadsend.com/home/index.php?pageID=compiler)

Y en la pagina de Ioncube dice esto:
"Encoding PHP scripts with optimised compiled bytecodes for optimum runtime performance and maximum security." (http://www.ioncube.com/sa_encoder.php)
Roadsend no lo conozco .. pero Ioncube necesita de la instalación de PHP por médio para ejecutarse.

Para mi una "compilación" es crear un ejecutable que no dependa de nada más (de PHP "instalado" por ejemplo) .. si creo una aplicación PHP-GTK por ejemplo (ya que su enfoque es a la creación de aplicaicones de tipo "escritorio") que genere un ".exe" independiente u otro ejecutable según el S.O. que se "compile".

Para una aplicación tipo "web" (bajo un servidor HTTP) el tratamiento sería el mismo que ejecutar en modo CGI programado en "C".

Un saludo,
  #11 (permalink)  
Antiguo 10/03/2006, 06:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Ahora tu codigo se vuelve mas rapido porque la interpretacion ya no existe.
Totalmente deacuerdo ..

Cita:
- Puedes desarrollar, si lo deseas, componentes, clases, y tratarlas como caja negra, pues lo unico que necesitas saber es que metodos llamar y que informacion pasar.
En PHP tienes "extensiones" que son -compiladas- y las llamas como mencionas .. Ejemplos: GD, las que usas para conectarte a BBDD (mysql .. etc), PDFlib (para generar PDF's) y muchas más específicas. De hecho algunos de estas utilidades para proteger o "compilar" tu código se basan en el uso de una extensión que debes instalar a PHP para que sepa trabajar ese tipo de archivos "compilados/protegidos" ..

Puedes si quieres programar extensiones para PHP compiladas y usarlas bajo tus aplicaciones PHP "interpretadas".

Cita:
- Finalmente, si estas desarrollando comercialmente, puedes alojar tus productos de demo en servidores x y tus clientes hasta pueden bajarse los .php (compilados) .
Sean o no "compilados" .. ya tienes las aplicaciones que conoces que "encriptan" tu código con esos fines de protección de propiedad itelectual .. crear "demos", definir licencias y demás historias.

Creo que tu mejor opción es usar este tipo de aplicaciones (Ioncube, el Zend Safety Guard .. o similares) .. así proteges tu propiedad itelectual y si la psudo-compilación te reporta algún beneficio de rendimiento OK, eso que te llevas. Pero también hay que ser "realista" .. hay que ver que tipo de aplicación usas. Algunas requieren "extensiones" que instalar en el servidor .. otras no (sólo ciertos archivos tipo "key"). Te hago el comentario por qué no siempre uno puede distribuir sus aplicaciones en servidores dedicados donde uno tiene total control, a veces el "cliente" no está dispuesto a pagar nada más .. o no puede hacer ningún tipo de instalación en el servidor.

Cita:
No se trata de ir en contra de la filosofia del Open Source, simplemente es una alternativa mas para aquellos que kieran tomarla.
Insisto .. la "compilación" en general lo que ofrece es todo tipo de protección para tu código (ademas de la mejora de rendimiento por supuesto). El problema principal de un lenguaje "interpretado" cara a nosotros desarrolladores es lo "indefenso" que queda nuestro código ante protección de nuestra propiedad intelectual.

La alternativa está .. sólo que cuesta $$$. No me voy a meter en el tema de por qué la comunidad "Open Source" de desarrolladores no implementa una aplicación de esas características que sea "gratuita" .. pero creo que los motivo$$$ son claros.

Un saludo,

Última edición por Cluster; 10/03/2006 a las 07:03
  #12 (permalink)  
Antiguo 10/03/2006, 06:40
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Hola,

Hasta donde yo sé Ioncube no es un compilador, he visto el código generado y realmente es un ofuscador de código, ahora el Zend Encoder no es sólo un ofuscador de código:

Cita:
Zend SafeGuard's encoder compiles and converts plain-text PHP scripts into a platform-independent binary format known as a 'Zend Intermediate Code' file
Zend Encoder compila, ofusca, y optimiza el código PHP en un código intermedio que puede ejecutar el motor Zend. Yo creo que es una buena alternativa para lo que estás buscando ya que Zend es la empresa encargada del desarrollo y mantenimiento del motor de ejecución de PHP.

Desde mi punto de vista, el Zend Encoder hace como una pre-compilación de código.

En cuanto a servidores, hay muchos que tienen instalado el Zend Optimizer por lo cual vas a poder usar esta herramienta sin problemas. También he visto algunos con Ioncube.

Ahora, si lo que querés es hacer un EXE a partir de un código PHP... Ni idea, he visto una aplicación que convierte un sitio entero en un EXE, pero sólo HTML...

Desde el punto de vista del Open Source, no deberíamos hacer esto como dice Cluster, coincido con él. Pero yo varias veces he renegado con algún que otro cliente porque sabían un poquito de PHP y se largaban a modificar el código de un sistema sin percatarse de que podían dañarlo...

Saludos.
  #13 (permalink)  
Antiguo 10/03/2006, 07:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Desde el punto de vista del Open Source, no deberíamos hacer esto como dice Cluster, coincido con él. Pero yo varias veces he renegado con algún que otro cliente porque sabían un poquito de PHP y se largaban a modificar el código de un sistema sin percatarse de que podían dañarlo...
Así es .. la diferencia es bien clara y lo primero que hay que plantearse: vamos a crea un código con fines lucrativos (o no queremos distribuir nuestro código libremente)? .. o vamos a desarrollar un proyecto con fines educacionales o simplemente compartir el código con la comunidad (Open Source)? ..

Con esa pregunta que nos hagamos todo uso de "encriptadores" y similares estará justificada según el fín de nuestra aplicación.

Un saludo,
  #14 (permalink)  
Antiguo 10/03/2006, 07:14
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Cita:
Iniciado por Cluster
Así es .. la diferencia es bien clara y lo primero que hay que plantearse: vamos a crea un código con fines lucrativos (o no queremos distribuir nuestro código libremente)? .. o vamos a desarrollar un proyecto con fines educacionales o simplemente compartir el código con la comunidad (Open Source)? ..
No podría estar mejor dicho.

Ahora, en cuanto a lo que ví anteriormente, ¿alguien de ustedes programó alguna vez una extensión para PHP? Según ví no debe ser muy difícil si se conoce un poco de C++, pero sería interesante probar...
  #15 (permalink)  
Antiguo 10/03/2006, 08:53
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
Yo veo que hay dos aspectos de la "compilacion".

Uno es el de optimizar. La teoria dice que el codigo compilado es mas rapido que el interpretado. Ahora, quienes trabajamos con PHP sabemos de antemano que estamos usando un lenguaje interpretado, asi que el tema de performance en el servidor no deberia preocuparnos demasiado. Si en todo caso es un tema critico entonces es porque no hemos hecho la eleccion correcta y estamos usando un lenguaje inadecuado. O sea, no deberiamos haber usado PHP...

Si, por otra parte, lo que se pretende es prevenir que el codigo sea visible, entonces, a pesar de que a mi parecer no es etico, la alternativa mas simple seria "ofuscar" o "encriptar"...
__________________
No tengo firma ahora... :(
  #16 (permalink)  
Antiguo 10/03/2006, 12:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Si, por otra parte, lo que se pretende es prevenir que el codigo sea visible, entonces, a pesar de que a mi parecer no es etico, la alternativa mas simple seria "ofuscar" o "encriptar"...
Yo sigo insistiendo .. no se puede meter en el "saco" a todo tipo de aplicaciones:

Cita:
Así es .. la diferencia es bien clara y lo primero que hay que plantearse: vamos a crea un código con fines lucrativos (o no queremos distribuir nuestro código libremente)? .. o vamos a desarrollar un proyecto con fines educacionales o simplemente compartir el código con la comunidad (Open Source)? ..
Yo tengo proyectos hecho bajo Open Source (código que publico por aquí .. mi "Autentificator" .. etc). NO tiene sentido "ofuscar" ese tipo de aplicaciones con ese fin .. justamente se crearon para "dar" a conocer el código ...

Pero por otro lado también desarrollo aplicaciones para terceros con animo de lucro .. así que ahí debo resguardar mi "propiedad intelectual" como sea.

Un saludo,
  #17 (permalink)  
Antiguo 10/03/2006, 12:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ahora, en cuanto a lo que ví anteriormente, ¿alguien de ustedes programó alguna vez una extensión para PHP? Según ví no debe ser muy difícil si se conoce un poco de C++, pero sería interesante probar...

Por mi parte no tengo experiencia con C y menos en el desarrollo de una extensión para PHP .. pero si que he visto várias veces este tutorial al respecto:

http://www.zend.com/php/internals/ex...n-writing1.php

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:58.