Todo sobre PHP, el lenguaje de programación del lado del servidor más usado en la web. Con PHP puedes realizar el backend de aplicaciones web de una manera accesible, sencilla y directa.
PHP es el lenguaje de programación para el desarrollo del backend más popular. También uno de los lenguajes más usados, cómo se refleja en todos los índices globales.
Con PHP puedes desarrollar sitios y aplicaciones de todo tipo. PHP es el motor además de los CMS más populares, como WordPress, Joomla, Drupal o Magento, entre muchos otros. En PHP también encontramos frameworks potentes y muy usados como Laravel o Symfony.
Una de las ventajas de PHP es su facilidad de uso. Cualquier persona con muy pocos conocimientos puede comenzar a usar PHP para el desarrollo de páginas web. Sin embargo, esa misma ventaja también puede ser un inconveniente, pues si no se dispone de la debida formación es fácil caer en malas prácticas. Otra gran ventaja es su disponibilidad, ya que lo encontramos en la mayoría de alojamientos web de todo tipo.
Más información:
Lenguaje de Backend más popular
PHP es el lenguaje más popular para el desarrollo backend, es decir, es la tecnología más usada en lo que respecta a lenguajes del lado del servidor.
El motivo de este éxito no es solo la facilidad con la que PHP permite desarrollar páginas, sino también formar parte del stack de tecnologías más habitual en Internet: LAMP (Linux, Apache, MySQL y PHP).
La mayoría de los planes de hosting soportan PHP y la mayoría de los proyectos de gestores de contenido populares están construídos con PHP, como por ejemplo WordPress o Joomla.
Historia de PHP
PHP es un lenguaje de programación que ya acumula una dilatada historia, en relación a la breve existencia de Internet, puesto que ha pasado por distintos estados, siempre creciendo en funcionalidades, rendimiento y herramientas disponibles en el lenguaje.
Sus inicios no fueron muy ambiciosos. Al principio PHP era un sencillo intérprete para procesamiento de formularios, creado por Rasmus Lerdorf con el nombre de PHP/FI. Consistía en un conjunto de scripts CGI escritos en C, que en el año 1995 se presentó al mundo bajo el nombre de "Personal Home Page", versión que se ganó el acrónimo de PHP para este lenguaje. Este mismo año Rasmus liberó el código fuente de su intérprete de formularios para que otros desarrolladores lo pudieran usar.
La comunidad de PHP fue creciendo rápidamente, dado que sus herramientas facilitaban realizar procesos habituales de una manera sencilla. Después de varios años en el que se presentaron mejoras poco relevantes, la primera versión de PHP que realmente se parece al lenguaje de hoy en día se presentó como PHP 3. Esta es la primera entrega de PHP que estaba desarrollada en comunidad, participando desarrolladores de todo el mundo y que era compatible con todos los sistemas operativos populares. La ventaja de PHP 3 con respecto a otros lenguajes para programación backend era su facilidad y el completo conjunto de funcionalidades integradas en su núcleo, que permitían trabajar con una amplia cantidad de bases de datos, el sistema de archivos, generación de imágenes dinámica y un largo etc. A partir de esta versión PHP cambió de nombre, tomando aquel como se conoce hoy en día "Hypertext Preprocessor".
Con PHP 4 se reescribió todo el nucleo de PHP, para aumentar el rendimiento del lenguaje y facilitar el mantenimiento de su código, mejorando su modularidad. La versión 4 de PHP, lanzada en el año 2000, incluía manejo de sesiones buffers de salida y el soporte a varios tipos de servidores web. El lenguaje se había convertido en extremadamente popular, disponible en la mayoría de los servidores web de Interenet, sin embargo todavía ofrecía carencias en algunos puntos destacados, en comparación con lenguajes más maduros.
La madurez de PHP podemos decir que se alcanzó con PHP 5. Esta versión tenía una orientación a objetos robusta, necesaria para el desarrollo de aplicaciones grandes y mantenibles. A lo largo de las versiones de PHP 5 fueron incorporándose más y más características como los namespaces o traits que posicionaron a PHP como un lenguaje orientado a objetos a la altura de los más avanzados. Gracias también a estas mejoras pudo ver la luz una de las herramientas más populares en el ecosistema de PHP, como es su gestor de dependencias Composer.
A estas alturas PHP Podemos decir que PHP había alcanzado una robustez suficiente para realizar una programación avanzada, a la altura de lenguajes como Ruby o Java. Sin embargo, en este punto su gran lastre era un limitado rendimiento. Situación que se solucionaría con PHP 7. Esta nueva versión de PHP consiguió duplicar el rendimiento de las aplicaciones y en versiones más modernas todavía como PHP 7.2 o 7.3 triplica la velocidad de PHP 5. Gracias a esta actualización estamos ante un lenguaje que tiene todas las características necesarias y deseables para cualquier tipo de proyecto.
Actualmente con PHP 8 se han seguido mejorando las prestaciones del lenguaje y su rendimiento, el motor de compilación JIT ymuchas otras cosas, lo que permite a PHP ofrecer velocidad y experiencia de desarrollo ideales para todos los proyectos backend.
Plataformas de desarrollo y ejecución de PHP
PHP es un lenguaje multiplataforma, lo que quiere decir que está disponible en los sistemas operativos más habituales:
- Windows
- Linux
- Mac
Esto quiere decir que podemos construir sitios y aplicaciones PHP en cualquier ordenador que deseemos. Sin embargo, las plataformas de desarrollo y despliegue tienen distintas particularidades.
Plataformas de desarrollo de PHP
Para desarrollar sitios en PHP necesitamos instalar en nuestro ordenador todos los programas necesarios para trabajar: un servidor web, el propio PHP y generalmente una base de datos como MySQL o cualquier otra.
Contar con todos los programas necesarios para desarrollar en PHP es sencillo, pero existen innumerables posibilidades, dependiendo de nuestro ordenador y de las necesidades del software que estemos creando. Para comprender las distintas opciones que disponemos podemos leer el detalle en el artículo creación de un entorno de desarrollo para PHP.
Plataformas para despliegue de sitios y aplicaciones PHP
En lo que respecta al despliegue de aplicaciones PHP, es decir, los sistemas donde van a estar en producción, disponibles para los usuarios visitantes, la plataforma más habitual es Linux. Los motivos son diversos, pero podríamos destacar la estabilidad del sistema, pero además que al ser software libre no es necesario pagar por una licencia.
Lo que puede cambiar a gustos de los administradores es el servidor web donde se van a publicar los sitios. Los servidores más importantes para PHP son Apache y Nginx. Apache es la opción más habitual y la que nos ofrece más posibilidades de configuración. Nginx por su parte es un servidor más ligero, que se usa muy comúnmente cuando se desea optimizar PHP y conseguir sitios un poco más veloces.
En principio cuando queremos publicar un sitio web no es absolutamente necesario instalar ningún programa, porque generalmente se contrata un espacio de alojamiento (hosting) que tenga soporte para PHP. Sin embargo, también es una opción muy habitual y necesaria para aplicaciones de mediano porte o avanzada complejidad, que se contrate un servidor propio (ya sea un servidor VPS, cloud o dedicado), donde tenemos capacidad de instalar cualquier software y realizar cualquier configuración que necesitemos.
API de funciones de PHP
Uno de los puntos fuertes de PHP es su API de funciones. Dentro del núcleo de PHP encuentras funciones para hacer todo tipo de operaciones y trabajar con una cantidad enorme de recursos.
En PHP encuentras funciones para trabajar con cualquiera de las bases de datos populares, el sistema de archivos, envío de email, conexiones con otros servidores por medio de FTP o HTTP, etc. También tiene funciones más específicas por ejemplo para el tratamiento de imágenes, creación de PDF, tratamiento de XML, abstracción de base de datos y mucho más.
Por supuesto, encuentras nutrido grupo de funciones para trabajar con cadenas, arrays, matemáticas, etc. Sin olvidarnos que la propia comunidad de PHP ibera muchas otras funcionalidades en paquetes que puedes incluir en tus aplicaciones por ser software libre.
En el manual oficial de PHP existe una referencia de funciones donde se encuentran clasificadas por ámbito. Echar un vistazo a esa referencia es una buena oportunidad para hacerse una buena idea de la potencia del lenguaje para la realización de todo tipo de tareas, sin necesidad de instalar ningún tipo de complementos o usar bibliotecas de terceros.
¿Es PHP un lenguaje inseguro?
A veces se acusa a PHP de ser un lenguaje poco seguro ¿es eso cierto? ¿Existe un motivo real para considerar PHP inseguro?
Para encontrar los posibles motivos por los que se puede afirmar esta cuestión tenemos que remontarnos al inicio de PHP. En las primeras versiones del lenguaje se encontraban activadas algunas configuraciones potencialmente inseguras como el "register_globals". Estas configuraciones realmente no son recomendables y en las versiones actuales del lenguaje se han quitado, de modo que no podemos achacar este problema actualmente al lenguaje.
También PHP es capaz de usarse de muchas maneras y algunas cuestiones como el montaje de sentencias SQL pueden provocar fácilmente inyecciones de SQL, así como el mostrar ciertas variables en la página podrían causar ataques XSS. Muchas aplicaciones PHP adolecen de estos problemas de seguridad, pero lo cierto es que PHP sí que ofrece todos los mecanismos para conseguir protegerse ante estos problemas. Por ejemplo podemos sanitizar todos los textos que se vuelquen en una página, sobre todo aquellos que provengan de las entradas del usuario y montar las sentencias SQL bindeando parámetros por medio de las funciones de acceso a los motores de base de datos o PDO.
Por tanto, tener un agujero de seguridad por inyección de SQL o la posibilidad de crear ataques XSS no es un problema derivado del lenguaje sino del desarrollador. El problema de seguridad no está realmente en PHP, sino en cómo se usa, y todos los lenguajes se pueden usar incorrectamente, no solo PHP. En este sentido debemos tener en cuenta que PHP es un lenguaje muy popular que usan profesionales y aficionados de todos los tipos. Es excelente tener una gran comunidad pero es importante que exista una formación suficiente de los desarrolladores para conseguir sacar la mejor cara del lenguaje.
Crea artículos, recursos o comparte información sobre PHP
Manuales
Más manuales
Tenemos 18 manuales más sobre PHP
Colecciones
Canales de eventos y clases en directo
# PHP
Temas relacionados
Dentro de PHP
- Bases de datos con PHP
- Sesiones y PHP
- Upload php
- Envío de email con PHP
- Arrays en PHP
- Instalación de PHP
- Sistema de archivos PHP
- Fechas con PHP
Bases de datos con PHP
PHP es un lenguaje de Backend y por lo tanto uno de los recursos más típicos con los que trabajamos son las bases de datos.
PHP soporta una enorme cantidad de bases de datos distintas. Por supuesto, todas las populares están soportadas, como MySQL, PostgreSQL, MariaDB, MS SQL, Oracle y muchas más.
Existen funciones nativas para trabajar con cualquiera de las bases de datos más populares. Pero además podemos usar PDO que es una capa de abstracción del acceso a los datos, que permite usar las mismas funciones de PHP para el acceso a diferentes bases de datos.
Por supuesto, existen también capas de abstracción de las bases de datos y ORM para PHP, pero esto ya lo tenemos que instalar en librerías aparte.
Preguntas y respuestas de Bases de datos con PHP
Sesiones y PHP
Las sesiones en PHP permiten almacenar datos que perduran durante toda la visita de un usuario a un sitio.
Las sesiones ofrecen un pegamento que permite unir un conjunto de páginas web para que se comporten como una aplicación única. No es el único soporte que podemos usar para poder crear aplicaciones web y almacenar información, pero sí es el más sencillo de implementar, ya que el propio lenguaje PHP ofrece de manera nativa.
Existe una variable superglobal llamada $_SESSION
, que consiste en un array asociativo que sirve para almacenar datos de sesión y acceder a las variables almacenadas. Ese array mantiene todos los datos de la sesión, pero antes es necesario inicializar la sesión con la función:
session_start();
// Ahora puedo acceder a la sesión
$_SESSION['mi_variable'] = 'Valor almacenado';
Upload php
Upload de archivos PHP para subir archivos al servidor web, de modo que los clientes puedan acceder a los archivos cargados por ellos mismos o por otros usuarios.
El upload de archivos o la carga de archivos es una de las tareas que podemos hacer en la programación backend. PHP dispone de un mecanismo sencillo para hacer el upload de los ficheros, que técnicamente no reviste ninguna dificultad, aunque en este área lo más importante es que la programación sea suficientemente segura.
Envío de email con PHP
Si queremos enviar emails desde el servidor, como respuesta a las acciones del usuario, debemos usar programación Backend. Con PHP es muy sencillo.
En PHP existe una función llamada mail() que se encarga de hacer el trabajo del envío del email. Para ello es necesario que el servidor tenga configurado una pasarela de envío con SMTP.
La función mail permite enviar correos de manera sencilla, sin embargo, si necesitamos mayores funcionalidades, existen librerías más potentes como PHP Mailer, o podemos usar servicios de terceros.
Preguntas y respuestas de Envío de email con PHP
Arrays en PHP
Los arrays, arreglos, matrices o vectores son estructuras de datos disponibles en PHP y la mayoría de los lenguajes de programación. Básicamente se trata de un contenedor que tiene diversas casillas para añadir datos en cada una de ellas.
PHP dispone de dos tipos de arrays: los arrays comunes y los arrays asociativos.
Los arrays comunes son los que tienen índices numéricos:
$miArray[0] = "Valor para la primera casilla";
Los arrays asociativos, que en muchos lenguajes se llaman colecciones, son los que tienen índices numéricos.
$miArrayAsociativo['indice_alfanumerico'] = "Valor para una casilla";
Preguntas y respuestas de Arrays en PHP
Instalación de PHP
Mecanismos para instalar el lenguaje PHP y todo lo necesario para comenzar a trabajar con PHP.
Si queremos trabajar con PHP necesitamos que nuestro ordenador sea capaz de entender este lenguaje. Igualmente, si queremos que un servidor web procese las páginas PHP necesitamos instalar el lenguaje en el servidor.
Pero además del propio lenguaje, para que PHP funcione generalmente tendrás que instalar un servidor web, ya que PHP suele instalarse como un módulo del servidor Apache o Nginx. Además, generalmente para trabajar con PHP en toda su extensión es necesario también contar con un sistema gestor de bases de datos como MySQL o similares.
En todo caso, los mecanismos de instalación de PHP dependerán si queremos usarlo en local para desarrollar o si queremos usarlo en un servidor remoto. Generalmente, la mayoría de las personas que desean instalar PHP lo necesitan para desarrollar en local, puesto que generalmente cuando publicamos un sitio web con PHP en un servidor, la gente del proveedor de hosting es la que se encarga de darnos un espacio de alojamiento compatible con PHP.
- Si buscas más acerca de instalar PHP en tu ordenador te recomendamos consultar la Guía definitiva para crear tu entorno de desarrollo con PHP.
- Si buscas instalar PHP en un servidor te recomendamos consultar el Manual de Administración de servidores Linux.
Preguntas y respuestas de Instalación de PHP
Sistema de archivos PHP
PHP permite leer el sistema de archivos del servidor y realizar todo tipo de actividades sobre las carpetas y ficheros que contiene.
Una de las utilidades más importantes que nos ofrecen los lenguajes de programación del lado del servidor, como PHP, es el acceso al sistema de arhivos. Gracias a ello podemos realizar operaciones de lectura y escritura de cualquiera de los elementos existentes en las carpetas del servidor donde PHP tenga los suficientes permisos.
Gracias al sistema de archivos podemos leer ficheros de texto y de otros formatos para procesarlos. Podemos guardar información de los usuarios en ficheros y organizarlos en carpetas, leer la estructura de carpetas del servidor, etc. Esto nos puede dar pie al desarrollo de numerosos tipos de aplicaciones.
Preguntas y respuestas de Sistema de archivos PHP
Fechas con PHP
Trabajar con fechas es una de las tareas habituales en las aplicaciones web y por supuesto en PHP.
PHP dispone de un nutrido grupo de funciones para trabajo con fechas mediante la clase DateTime de las librerías incorporadas en el lenguaje.
Además, en PHP la comunidad mantiene una biblioteca muy potente para trabajo con fechas, llamada Carbon, que ofrece más funcionalidades y determinados tipos de cálculos más poderosos que los existentes en el propio lenguaje.
Preguntas y respuestas de Fechas con PHP
Preguntas y respuestas de PHP
Se han recibido 266 faqs en PHP