Foros del Web » Programación para mayores de 30 ;) » Programación General »

Cgi, PHP ---> ¿c? ¿Perl?

Estas en el tema de Cgi, PHP ---> ¿c? ¿Perl? en el foro de Programación General en Foros del Web. Bueno quería preguntaros lo siguiente. Tengo unos scripts hecho en php. Tengo objetos, conexiones a base de datos etc etc. Mi problema radica en que ...
  #1 (permalink)  
Antiguo 10/12/2006, 16:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Cgi, PHP ---> ¿c? ¿Perl?

Bueno quería preguntaros lo siguiente.

Tengo unos scripts hecho en php. Tengo objetos, conexiones a base de datos etc etc. Mi problema radica en que hace muchas cosas y en ocasiones supera los 30 segundos de procesamiento y claro como por defecto en los servidores, los scripts php están limitados a 30 segundos... me preguntaba ¿y si esos scripts que realizan procesos de interacción con bases de datos los hago con cgi?

Bien, todo este rollo viene por mi desconocimiento sobre cgi. ¿Podría reutilizar el código que tengo en php para hacer algo en perl? ¿Seria mejor hacer cgis en c ? (lo digo por la similitud php c) ¿Se podria desde php llamar a esos phps de forma que los procesara el cgi, pero llamando al codigo original de c? (lo digo para no tener que hacer traducciones), haciendo una similitud un poco burra pero para que nos entendamos como si desde un programa hago un exec a otro programa :D.

Gracias
  #2 (permalink)  
Antiguo 11/12/2006, 07:19
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Cgi, PHP ---> ¿c? ¿Perl?

Cita:
(lo digo por la similitud php c)
PHP y C no son para nada parecidos, PHp es de muyyyy alto nivel, demasiado para mi gusto, C es de muy bajo nivel, demasiado para mi gusto, PERL es el punto perfecto de equilibrio...

Que un script tarde más de 30 segundos ? debe estar mal programado, están optimizadas las conexiones a la base de datos ? ya que son MUY costosas...Es bueno conectarse solo una vez y ahí hacer todo lo que necesitamos...

En C te volverás loco, PERL sería la opción, seguramente ganes un poco de performance respecto a PHP, pero igual seguramente haya algún problema de diseño...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 11/12/2006, 08:48
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Cgi, PHP ---> ¿c? ¿Perl?

Hola, gracias por la respuesta.... puse la alternativa de C pero puedo usar C++, y hay bastantes similitudes en cuanto a manejo de estructuras.

La aplicación no está mal diseñada jeje, es que usa gran cantidad de datos y realiza procesos muy complejos que ha de tardar mas de 30 segundos. No te extrañes porqque hay procesos que en el mundo de la inforrmática duran horas.

¿No crees que como uso objetos deberia usar mejor c++, mejor que perl? Lo digo para reutilizar el codig
  #4 (permalink)  
Antiguo 11/12/2006, 09:09
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Cgi, PHP ---> ¿c? ¿Perl?

En perl también puedes usar objetos y reutilización de código, lo que tiene de bueno C++ es la velocidad, te costará más programarlo pero andará más rápido...

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 11/12/2006, 11:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Cgi, PHP ---> ¿c? ¿Perl?

Cierto monoswin!!! jeje

He estado realizando pruebas e incluso el código de las clases lo podría casi reutilizar, de esta forma solo he de cambiar las clases para que me funcione el resto del código.

Al hilo de todo esto, me he encontrado un pequeño problema para que este paso de php a perl no se me haga muy traumatica y es la siguiente.

En la base de datos, yo tenia una fecth_object en php, de tal forma que si me creaba una base de datos

$bd=new basedatos;

y luego hacia una consulta
$consulta=$bd->consulta($sql);

en php tienes la opcion de converter a array o a objeto dicha consulta.

Yo me cree un metodo que hacia
$variable=$bd->convierte_objeto($consulta)

de tal forma que cuando usaba la variable podia hacer
$variable->campo (donde campo era un campo de la base de datos)

eso se hacia con un fetch_object

la pregunta llega aqui. He visto que en perl se hace esto
$consulta->fetchrow_array();

¿Existe alguna orden que en vez de hacer fechrow_array(), que convierte en un array la consulta devuelta, que lo convierta en un objeto? Lo he estado buscando y no lo encuentr, no se si porque no existe o porque no he buscado bien, algo así como fetch_object()

Gracias
  #6 (permalink)  
Antiguo 11/12/2006, 12:19
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Cgi, PHP ---> ¿c? ¿Perl?

Podrías usar $sth->fetchrow_hashref()

con lo cual te hace una referencia a los datos que trae de la base de datos, entonces NO TE DUPLICA los datos !!! ahorrándote muucha memoria...

y puedes usarlo así

my $hashRef = $sth->fetchrow_hashref();

print $hashRef->{'campo1'}

Espero que te sirva

Saludos
PD: No creo que necesites crear realmetne un objeto, con esta referencia supongo que alcanzará...Si necesitas si o si un objeto checkea la funcion bless
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 11/12/2006, 16:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Cgi, PHP ---> ¿c? ¿Perl?

Perfecto. Ya he hecho las pruebas conexión perfecta (solo tengo que modificar la clase base de datos), extracción perfecta y datos extraidos perfectos, solo tengo que modificar y poner en todo el codigo donde ponia

$variable=$consulta->campo

poner

$variable=$consulta->{campo}

y funciona perfectamente.

Gracias por todo monoswin. Al final me decido hacerlo en perl.
  #8 (permalink)  
Antiguo 12/12/2006, 06:22
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Cgi, PHP ---> ¿c? ¿Perl?

que bueno que te haya servido malalengua...Pero te tengo una pregunta, para que usar $valiable = ...si ya tienes $consulta->{campo} que ya es una variable...

Lo digo para ahorrar memoria...jeje...Puedes usarla perfectamente como una variable...

Saludos
__________________
Esteban Quintana
  #9 (permalink)  
Antiguo 12/12/2006, 12:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Cgi, PHP ---> ¿c? ¿Perl?

Tienes razón, pero ten en cuenta que mi intención es reutilizar el código con el minimo esfuerzo posible, debido a los apremios de tiempo.

Me has dado una idea y es que para no tener que ir por todo el código incluyendo{}, puedo en el método convierte_objeto crear el objeto que necesito, si logro hacer eso, en vez de modificar tantas líneas de código solo tendría que modificar unas pocas, ya que me serviria $variable->campo, porque el objeto variable lo habría creado asignandole (internamente en la clase), $variable->campo=$consulta->{campo} y de esta forma el impacto en la aplicación sería minima. Ya solo tendría que estudiar como introducir ese cambio en el método convierte_objeto.

Gracias por todo ;)
  #10 (permalink)  
Antiguo 14/12/2006, 19:07
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Cgi, PHP ---> ¿c? ¿Perl?

Cita:
Iniciado por malalengua Ver Mensaje
Hola, gracias por la respuesta.... puse la alternativa de C pero puedo usar C++, y hay bastantes similitudes en cuanto a manejo de estructuras.

La aplicación no está mal diseñada jeje, es que usa gran cantidad de datos y realiza procesos muy complejos que ha de tardar mas de 30 segundos. No te extrañes porqque hay procesos que en el mundo de la inforrmática duran horas.

¿No crees que como uso objetos deberia usar mejor c++, mejor que perl? Lo digo para reutilizar el codig
PHP lo único que tiene en común con C es la sintaxis.

En C, el código trabaja mucho con punteros, manejo de memoria, todo. No es tan sencillo-directo como hacer lo mismo en C.

Por parte de C++, dudo que puedas reutilizar el código. Primero tendrías que aprender C++, cosa harto larga (muy larga, créeme); y luego verías que la POO de C++ es de las más complejas que hay.
  #11 (permalink)  
Antiguo 17/12/2006, 05:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 153
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Cgi, PHP ---> ¿c? ¿Perl?

bueno, que sea de las más complejas, no significa que no sepa hacerlo. De hecho cuando puse c++ como alternativa, era porque puedo hacerlo en c++ Al final me he decidido por Perl, porque es la opción más rápida que me ha permitido hacer el cambio.

Podría haberlo hecho en c++ pero me llevaba más tiempo.

Saludos.
  #12 (permalink)  
Antiguo 17/12/2006, 07:45
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Cgi, PHP ---> ¿c? ¿Perl?

Cita:
Iniciado por malalengua Ver Mensaje
bueno, que sea de las más complejas, no significa que no sepa hacerlo. De hecho cuando puse c++ como alternativa, era porque puedo hacerlo en c++ Al final me he decidido por Perl, porque es la opción más rápida que me ha permitido hacer el cambio.

Podría haberlo hecho en c++ pero me llevaba más tiempo.

Saludos.
(Estoy dando por supuesto que no conoces C++)

Yo no he dicho que no pudieses, simplemente, que para poderlo hacer en C++ primero hay que conocer el lenguaje bastante bien, no es cosa de empezar y tirar líneas de código. No creas que C++ es simplemente un C con clases y que lleva el mismo tiempo que aprender C. Ya se decía que aprender C llevaba 3 meses y que aprender C++ lleva tres años.

Un ejemplo: No es lo mismo aprender VB (que en un par de tardes se conoce), que C++ (que lleva su tiempo).
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 22:30.