¿Puede PHP manejar backend?

PHP es un lenguaje de secuencias de comandos interpretado y no está realmente “compilado”. Puede manejar bastante, pero se ahoga con bastante facilidad cuando se queda sin memoria / maneja grandes conjuntos de datos. (IME cualquier cosa que se acerque a 10 MB comienza a dar dificultad PHP)

Puede que sea mejor tener un proceso asíncrono que haga el cálculo y el almacenamiento en caché de los resultados en un archivo, y que PHP sirva los resultados de ese cálculo (si es posible, ¿hacer una tarea cron?). Si lo necesita a pedido, puede hacer que el script se ejecute a pedido y simplemente hacer que un script del lado del cliente se registre con el servidor para ver si el proceso ya se realizó (nuevamente, escribiendo en un archivo temporal).

Alternativamente, codifíquelo en un lenguaje compilado como C / C ++, guarde el binario en un lugar seguro y haga que el servidor lo ejecute. Si necesita integrarse con su PHP, haga que PHP desinfecte la entrada (para evitar ataques de inyección) y páselo como parte de una llamada exec ().

Todos los lenguajes de programación tienen sus propios problemas, y lo que parece diferenciar a PHP de ellos es que ni siquiera puede ser consistente en sus propios problemas. Una de mis manías es que PHP ofrece bastantes funciones de búsqueda y no hay rima o razón si el primer argumento debe ser el pajar y el segundo argumento, la aguja o lo contrario. Para una buena lista de sus problemas, vea PHP: un fractal de mal diseño. Una búsqueda en Google puede mostrar ejemplos adicionales. Para una buena refutación, vea PHP Sucks! ¡Pero me gusta!

Dicho esto, los algoritmos, los patrones de diseño y el diseño general de su software tendrán un impacto mucho mayor en el rendimiento de su “código computacionalmente intensivo”.

Hay muchas personas que también señalarán que el hardware se vuelve más barato cada año. No tiene mucho sentido tratar de exprimir un milisegundo extra cuando puede comprar un procesador más rápido el próximo mes. Si espera que partes de su programa se comuniquen a través de una red (como es típico con una aplicación web), la red también eventualmente se convertirá en un cuello de botella. Para las aplicaciones típicas de estilo CRUD, PHP es más que suficientemente rápido.

Si tiene que hacer la pregunta, creo que estará bien siempre que no asuma ciegamente que sus algoritmos son los más eficientes. Debe usar un generador de perfiles y debe implementar varias soluciones, probarlas y compararlas, pero solo cuando calcule personalmente que el rendimiento general no es “lo suficientemente bueno”.

El lenguaje es para novatos sin educación que no conocen la diferencia entre nulo y sin valor; El backend generalmente requiere programadores más avanzados.

Por otro lado, escribí un juego usando Flash para frontend y PHP para backend. Entonces, es factible. Si la fiabilidad, la escalabilidad y la facilidad de mantenimiento no son importantes (como lo fue en mi caso).