PHP

> Temas > PHP
Editar

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.

Editar

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.

Editar

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.

Editar

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.

Editar

¿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.

Editar

¿Quieres añadir algo sobre PHP?

Crea artículos, recursos o comparte información sobre PHP

Crear un bloque

PHP

Manuales

Manual de PHP

Manual de PHP

Completo Manual de PHP que aborda los principios del lenguaje y las prácticas más comunes para el desarrollo de aplicaciones web del lado del servidor.
Manual de Laravel
Manual de Laravel, el más popular de los frameworks PHP, adorado por su comunidad, con el ecosistema más completo y un jugoso conjunto de funcionalidades para aplicaciones de todos los tamaños.
Taller de PHP
Reportajes prácticos sobre la programación de páginas con PHP, un lenguaje de programación de sitios web del lado del servidor...
Manual de CodeIgniter
Este es un Manual de CodeIgniter en su versión 3, un framework PHP sencillo que permite un desarrollo de aplicaciones de manera rápida y fácil.
Sistema de autenticación con PHP
Cómo realizar un sistema de autenticación en PHP, mediante el cual podamos validar usuarios a través de su nombre y la contraseña.
Crear PDF en PHP con FPDF
Manual de las librerías FPDF, que permiten crear archivos PDF desde scripts PHP. Con varios ejemplos y explicaciones sobre la...
Tutorial de Composer
En este tutorial queremos explicarte cómo usar Composer para gestionar los paquetes de software que usas en tus proyectos o...
Expresiones regulares
Explicaciones y ejemplos para el manejo de expresiones regulares, centrándose en las expresiones regulares de PHP, que son compatibles con muchos otros lenguajes
Trabajar con JSON desde PHP
Manual para explicar el uso de JSON, la notación de objetos Javascript, dentro de aplicaciones web realizadas con PHP y...
Gestión de archivos en PHP
Mecanismos de acceso al sistema de archivos de PHP, un manual dedicado por completo a la gestión y optimización de directorios y ficheros en los programas escritos con PHP.
Videotutorial de PHP
Recopilación de videotutoriales relacionados con la programación en PHP.
Manual sobre Imagick en PHP
Manual donde hablamos de la extensión nativa de PHP, Imagick. Esta extensión nos permite trabajar con imágenes desde PHP.
Biblioteca gráfica GD
Aprende a generar imágenes dinámicas con esta biblioteca de funciones. Da vida a tus scripts de una forma sencilla y...
Orientación a objetos con PHP
Explicamos al detalle todas las características de la orientación a objetos de PHP, la orientación a objetos avanzada que comenzó...

Más manuales

Tenemos 18 manuales más sobre PHP

Páginas dinámicas
Introducción al concepto de desarrollo de aplicaciones y sitios web con páginas dinámicas. Qué son los lenguajes de programación del lado cliente y servidor, cuáles son las principales tecnologías que disponemos.
Calendario PHP
Aplicación práctica de PHP en la que construimos un calendario que muestra el mes y año actual y permite moverse...
Carrito de la compra en PHP
Explicación detallada sobre cómo crear un carrito de la compra sencillo con PHP. Se realiza la implementación de una clase...
Web Services con PHP
Manual dirigido a personas que ya poseen conocimientos sobre Internet y programación en PHP y quieren comenzar a conocer el...
Libro de visitas con PHP y MySQL
Construcción de un libro de visitas utilizando la tecnología de programación de páginas dinámicas de servidor PHP y la base...
Manual de Joomla!
Manual del gestor de contenido Joomla! que pretende mostrar cómo instalar el CMS, configurarlo y personalizarlo para crear webs autogestionables.
Sistema de encuestas PHP y MySQL
Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos...
Librerías jQuery4PHP: jQuery desde PHP
Manual de las librerías jQuery4PHP, para trabajar con el framework jQuery desde PHP, sin necesidad de conocimientos de Javascript.
Sistema de envío de postales en PHP
Creación de tu propia página de envío de postales. Pon en práctica los conceptos adquiridos en nuestro primer manual de...
Manual del API de Twitter y PHP
Herramientas para comunicar con Twitter y crear aplicaciones web PHP basadas en esta red social, con el API de Twitter.
Debug en PHP con FirePHP
Hacer debug en PHP con FirePHP: Cómo instalar y utilizar el complemento FirePHP de Firefox y lanzar mensajes de log,...
Nubes de etiquetas en PHP
Manual para crear nubes de etiquetas o tag clouds en PHP.
Interfaz de árbol dinámico en PHP
Cómo crear la típica interfaz de árbol dinámico en PHP, con ramas que se expanden o contraen para mostrar los...
Utilización del API de Pixlr en PHP
Manual con una serie de artículos que ilustran el uso del API de Pixrl para implementar un sistema de edición...
Pure Edit: Backend PHP automático
Manual de uso y configuración de Pure Edit, una aplicación PHP para hacer un sistema de administración y gestion de...
Manual del API de bit.ly
El API de bit.ly permite acortar URLs y obtener información sobre las URL cortas generadas por este servicio web. Explicaremos...
Instalar PEAR
En este manual te enseñamos a instalar PEAR bajo PHP. Aprenderás qué es PEAR y conocerás el paso a paso para conseguir instalar dependencias vía PEAR.
Artículos de PHP desactualizados
En este manual vamos a dejar artículos de PHP que se encuentran algo desactualizados, por cualquier motivo y que por...

Colecciones

Colección de IDE PHP

IDE PHP

Programas para desarrollar aplicaciones...

6 ítems

Canales de eventos y clases en directo

Temas relacionados

Dentro de 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.

Editar

Bases de datos con PHP

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';

Editar

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.

Editar

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.

Editar

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";

Editar

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.

Editar

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.

Editar

Gestión de archivos en PHP

Gestión de archivos en PHP

Mecanismos de acceso al sistema de archivos de PHP, un manual dedicado por completo a la gestión y optimización de directorios y ficheros en los programas escritos con 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.

Editar

Fechas con PHP

Preguntas y respuestas de PHP

Se han recibido 264 faqs en PHP

Resp. 1
Votos 0

Hacer una pregunta