Mis problemas con PHP

La mezcla de productividad extrema y viejas rarezas de diseño de PHP sigue polarizando a los desarrolladores web. Los comentaristas destacan lo fácil que es pasar de cero a un backend funcional y elogian frameworks modernos como Laravel y Symfony, mientras critican las inconsistencias heredadas, el comportamiento inseguro de la biblioteca estándar y la tendencia a mezclar presentación con lógica de negocio. Muchos señalan que, pese a alternativas más limpias y lenguajes más nuevos, el estrecho vínculo de PHP con HTTP, su ubicuidad en el hosting y su enorme base instalada lo mantienen en el centro de la web, incluso mientras su ecosistema evoluciona para ocultar o mitigar sus asperezas.

PHP como un DSL web altamente productivo

  • Muchos describen PHP como extremadamente rápido para pasar de una idea a un backend web funcional, incluso para principiantes o quienes regresan.
  • Fortalezas: encaje muy estrecho con HTTP, despliegue simple (“dejar un archivo en un servidor”), SSR fácil, buen soporte de hosting y un ecosistema sólido (WordPress, Laravel, Symfony).
  • Algunos comparan PHP con Go como un “DSL para servicios web/en red” y señalan que el modelo de un proceso por petición de PHP y el manejo integrado de GET/POST/cookies son ventajas únicas.

Mezclar PHP y HTML frente a los sistemas de plantillas

  • Debate sobre si PHP como plantilla es una característica o un error histórico.
  • A favor: no hace falta un lenguaje de plantillas extra, bucles/condicionales simples, rápido de construir y depurar, PHP “es” el motor de plantillas.
  • En contra: fomenta archivos mezclados de PHP/HTML/SQL de 1000 líneas, mala separación de responsabilidades y hace fácil que los juniors pongan lógica de base de datos en las vistas.
  • Algunos argumentan que los frameworks y motores de plantillas existen principalmente para imponer convenciones y barreras de protección.
  • Comparaciones con JSX: algunos lo ven como “mezcla al estilo PHP rebautizada”, otros enfatizan que JSX es solo sintaxis sobre llamadas a funciones con mejor seguridad frente a XSS.

Rarezas del diseño del lenguaje y evolución

  • Quejas frecuentes sobre APIs inconsistentes de la stdlib (p. ej., el orden de los argumentos), funciones que devuelven false en lugar de lanzar excepciones, soporte débil para iteradores y el uso incómodo de PHP como un sistema de plantillas “real” (globals, semántica de include).
  • Otros sostienen que muchos de estos problemas se mitigan con herramientas/librerías (wrappers seguros, Psalm/PHPStan, helpers funcionales) y mejoras recientes del núcleo (p. ej., nuevos helpers de JSON).
  • Deseos de mejor soporte para async/await, primitivas adecuadas para datos binarios/buffers y tipos de contenedores más ricos más allá de los arrays.
  • Algunos sienten que las funciones nuevas y los patrones “sofisticados” añaden carga cognitiva cuando se usan en exceso.

Frameworks, ecosistema y herramientas

  • Laravel es elogiado por el prototipado rápido; Symfony, por aplicaciones “enterprise” estructuradas (aunque algunos lo encuentran demasiado “mágico” o poco documentado).
  • GraphQL: fuerte entusiasmo por el enfoque schema-first de Laravel Lighthouse y su integración profunda con ORM; experiencias mixtas con otras pilas de GraphQL en PHP.
  • Menciones de herramientas modernas como Swoole/FrankenPHP (rendimiento, modelo de servidor), analizadores estáticos y wrappers seguros muestran que PHP puede soportar flujos de trabajo robustos y modernos.

Legado, percepción y realidad profesional

  • Una gran parte de la mala reputación de PHP proviene de bases de código heredadas de WordPress/CF/PHP5 antiguo y del trabajo apresurado de agencias.
  • Varios señalan que el PHP moderno desde cero (con frameworks y herramientas) puede ser agradable, performant y lucrativo, pero muchos trabajos todavía implican “rescatar” código antiguo.