Definición y usos

PHP es el acrónimo recursivo PHP Hypertext Processor, y es el nombre dado a un lenguaje de programación de uso general, es decir, permite utilizarlo para conectar con base de datos, comunicarse con otras computadoras, capturar datos, entre otros propósitos; es además interpretado desde el lado del servidor, esto significa que a diferencia de código HTML, el cual se descarga a la computadora donde se hace la solicitud y el navegador lo lee e interpreta en ese instante, el código PHP se lee en el servidor web y se procesa en ese momento, lo que genera un resultado que, enriquecido con HTML, se envía al cliente en cuestión para desplegar el resultado de la petición, que bien puede ser alguna operación matemática, la información contenida en una base de datos (MySQL, PostgreSQL, Oracle, ODBC, DB2, MS SQL Server, Firebird, SQLite, MongoDB), la respuesta de la conexión con un servidor remoto vía webservices, entre otras cosas.

Fue creado en 1994, originalmente escrito en Perl, por Rasmus Lerdorf en principio para uso personal, pero paulatinamente se le fueron agregando diversas mejoras, hasta que en 1998 Zeev Suraski y Andi Gutmans lo reescribieron y publicaron de forma oficial la gran actualización PHP3 haciendo que dicho lenguaje formara parte de una gran cantidad de sitios de Internet que en ese entonces se estaba construyendo, gracias a su facilidad y flexibilidad, siendo que en la actualidad el 82% de las aplicaciones en servidores, están en PHP.

snapshot16

Fuente: https://w3techs.com/technologies/overview/programming_language/all

Servidor web

Como vimos anteriormente, necesitamos un servidor web para poder ejecutar PHP, sin ello, solo obtendríamos el código fuente en el navegador tras cada llamado.  El servidor web es una aplicación que está a la escucha o espera de llamados en un puerto en específico, siendo el más común el puerto 80. Una vez que recibe una solicitud, la procesa, interpreta y ejecuta y genera un resultado en forma de texto, que puede ser un código HTML en el caso de que la aplicación sea para uso web, o bien texto plano si está orientado a utilizarse a través de líneas de comandos o interfaz gráfica, aunque también se le pudiera dar un formato de salida como JSON.

Una vez que se generó y entregó el resultado de la petición, el servidor queda a la espera o a la escucha de nuevas solicitudes, mientras que es trabajo del cliente que realizó la petición en primer lugar, de interpretar el resultado. Esto significa que el trabajo de procesamiento lo toma el servidor, mientras que el cliente sólo lee el resultado, con lo cual, un sólo servidor puede estar ateniendo a un determinado número de clientes a la vez, sin que los clientes necesiten tener instalado algún aditamento especial para la conexión, fuera de un navegador web, o una aplicación que ejecute llamados, dotando al lenguaje de programación, de la habilidad de ser multi-plataforma, así como una ligereza en las acciones, dado que el trabajo fuerte es, como se mencionó, llevado a cabo por el servidor.

El servidor web más extendido y utilizado para ejecutar código PHP es Apache, aunque no el único. Nginx es otro servidor web que soporta PHP.  Ejemplo de otros servidores web que no necesariamente soportan PHP son Internet Information Services (IIS), Cherokee y Tomcat.

Cabe destacar que Apache es incapaz de interpretar PHP en forma nativa, por lo que se debe agregar el módulo creado para éste fin, con lo cual dota a éste lenguaje como multi-plataforma, ya que puede utilizarse en casi todos los sistemas operativos de forma gratuita.

Además es muy flexible, y se le puede dar usos muy variados teniendo la posibilidad de ejecutarse a través de líneas de comandos, no sólo por peticiones de un navegador web, además es posible crear aplicaciones con una interfaz gráfica, siendo QT y GTK los más extendidos, aunque no los únicos complementos que sirven para éste propósito.

Versiones

PHP contiene varias versiones, siendo actualmente las más utilizadas de la versión 5.2 a 5.5, las cuales ya no tienen soporte de actualizaciones de seguridad, dando como resultado millones de sitios expuestos a posibles brechas de seguridad.

La facilidad de actualización de la versión de PHP tiene como factor el impacto de los cambios del uso de las funciones que se implementaron, lo que conlleva, en ocasiones a un gran trabajo extra por la necesidad de reescribir parte de ese código para adecuarlo a las nuevas directivas.

Un claro ejemplo de esto es el uso de la bilblioteca de mysql, siendo en versiones más recientes el uso obligatorio de mysqli. Si se tiene una aplicación con cientos de miles de líneas con llamado de mysql, y se quiere estar al día con la actualización de PHP, se tendrían que reescribir todos los llamados a mysql por mysqli aunado al cambio de demás funciones obsoletas, tales como register_globals, session_register, entre otros, haciendo que se deban dirigir mayores recursos no solo para el soporte de la aplicación sino para su correcta actualización. Es por ello que muchos administradores de servidores web han decidido continuar en producción con versiones muy atrasadas (se pueden hablar incluso de diez años desde que se dejó de dar el soporte) en lugar de ocupar recursos y tiempo considerables para actualizar, esto considerando una sola aplicación, si se cuentan con muchas aplicaciones con cientos de miles de líneas en cada una de ellas, la decisión se hace evidente.

  • La versión 1.0 fue lanzada el 8 de agosto de 1995 y se llamó oficialmente “Personal Home Page Tools (PHP Tools).
  • La versión 2.0 fue lanzada el primero de noviembre de 1997.
  • La versión 3.0 fue lanzada el 6 de junio de 1998 y tuvo soporte hasta el 20 de octubre del 2000. Esta versión fue reescrita desde su base con respecto a las versiones anteriores.
  • La versión 4.0 fue lanzada el 22 de mayo del 2000 y tuvo soporte hasta el 23 de enero del 2001.
  • La versión 4.1 fue lanzada  el 10 de diciembre del 2001 y tuvo soporte hasta el 12 de marzo del 2002 y en ésta versión se introdujeron las variables superglobales, los cuales son por ejemplo, $_GET, $_POST, $_SESSION, $_REQUEST, $_COOKIE, $_SERVER, $_ENV dejando obsoletos los arreglos $HTTP_*_VARS (siendo “*” correspondiente a GET, POST, etc).
  • La versión 4.2 fue lanzada el 22 de abril del 2002 y tuvo soporte hasta el 6 de septiembre del 2002 y en ésta versión se deshabilita “register_globals” predeterminadamente.
  • La versión 4.3 fue lanzada el 27 de diciembre del 2002 y tuvo soporte hasta el 31 de marzo del 2005 y en ésta versión se introduce la ejecución a través de líneas de comandos (CLI) y CGI.
  • La versión 4.4 fue lanzada el 11 de septiembre del 2005 y tuvo soporte hasta el 7 de agosto del 2008.
  • La versión 5.0 fue lanzada el 13 de julio del 2004 y tuvo soporte hasta el 5 de septiembre del 2009 e introdujo el motor Zend II.
  • La versión 5.1 fue lanzada el 24 de noviembre del 2005 y tuvo soporte hasta el 24 de agosto del 2006 e introdujo diversas mejoras en el rendimiento.
  • La versión 5.2 fue lanzada el 2 de noviembre del 2006 y tuvo sporte hasta el 6 de enero del 2011 y proveyó un soporte nativo para JSON.
  • La versión 5.3 fue lanzada el 30 de junio del 2009 y tuvo soporte hasta el 14 de agosto del 2014 y entre sus mejoras están el soporte del espacios para nombres (spacenames), mysql en lugar de mysql y se dejó obsoleto a ereg.
  • La versión 5.4 fue lanzada el primero de marzo del 2012 y tuvo soporte hasta el 15 de agosto del 2015 y se dejaron obsoletos a register_globals, safe_mode, session_register(), session_unregister() y session_is_registered().
  • La versión 5.5 fue lanzada el 20 de junio del 2013 y tuvo soporte hasta el 20 de junio del 2016 y se le retiró el soporte para Wndows XP y Windows Server 2003.
  • La versión 5.6 es hasta el momento la última versión de la familia 5x, y fue lanzada el 20 de agosto del 2014 con soporte hasta el 31 de diciembre del 2018.
  • La versión de la rama 6x nunca fue lanzada y sus mejoras se implementaron en las versiones 5.3 y 5.4.
  • La versión 7.0 fue lanzada el 3 de noviembre del 2015 con soporte hasta el 3 de noviembre del 2018 y tiene mejoras en rendimiento así como declaraciones en los tipos de retorno en funciones, por lo que deja de considerarse un lenguaje de programación débil (Lenguaje de tipado débil es aquel donde no controla el tipo de variable que se declara, por lo que puede contener así mismo un entero, una cadena, un flotante, boolean, etc).

Pros y contras

PHP tiene, como todos los lenguajes de programación, puntos a favor y en contra.

Ya que está basado en sintaxis de C, es un lenguaje con una curva pequeña de aprendizaje, el código fuente no se muestra directamente ne el navegador web, conectividad a múltiples manejadores de base de datos, soporta extenciones, amplaia documentación, es libre, tiene manejo de excepciones, soporte para MVC a través de frameworks y es muy flexible.

Los principales elementos en contra son que al ser lenguaje interpretado, se puede ver su código fuente, además que la velocidad de la ejecución es mucho mas lenta que la de un lenguaje compilado; así como poco soporte para objetos (no soporta herencia múltiple, y nativamente no se puede recuperar los valores asignados a la instancia de un objeto cuando se carga otro archivo PHP.

Sigueinte:

IDE’s para desarrollar PHP

Fuentes:

http://php.net/

https://es.wikipedia.org/wiki/PHP


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

3 Comentarios

IDEs para programar en PHP – Angelinux · 9 noviembre, 2016 a las 16:34

[…] Anterior: Introducción a PHP […]

Servidor apache para desarrollar PHP – Angelinux · 10 noviembre, 2016 a las 10:08

[…] ya vimos anteriormente, PHP es un lenguaje del lado de servidor, significa que debemos montar o usar un servidor preparado […]

Desarrollo web, servidor local y remoto – Angelinux · 10 noviembre, 2016 a las 13:30

[…] comprendimos lo que es un servidor web y como instalarlo, por lo que ya tenemos cubierto el desarrollo local, pero una vez que terminemos […]

Deja un comentario