Cómo Funciona PHP
Entender cómo PHP procesa tu código te ayudará a escribir mejores aplicaciones. En esta lección veremos el ciclo de vida de una petición PHP y los conceptos fundamentales del modelo request-response.
PHP es un lenguaje del lado del servidor
A diferencia de JavaScript, que se ejecuta en el navegador del usuario, PHP se ejecuta en el servidor. Esto significa que:
- El usuario nunca ve tu código PHP, solo el resultado (HTML, JSON, etc.)
- PHP puede acceder a bases de datos, archivos del servidor y recursos protegidos
- Cada petición es independiente (stateless)
El ciclo request-response
Cuando un usuario visita una página PHP, ocurre lo siguiente:
- El navegador envía una petición (request) al servidor
- El servidor web (Apache, Nginx) recibe la petición
- PHP procesa el archivo .php solicitado
- PHP genera una respuesta (normalmente HTML)
- El servidor envía la respuesta (response) al navegador
- El navegador renderiza el HTML recibido
Navegador Servidor
| |
| 1. GET /index.php |
|--------------------------->|
| |
| 2. PHP procesa
| 3. Genera HTML
| |
| 4. HTTP 200 + HTML |
|<---------------------------|
| |
5. Renderiza |
Cada petición empieza de cero
Este es un concepto crucial: PHP no mantiene estado entre peticiones. Cada vez que un usuario hace una petición, PHP:
- Inicia un nuevo proceso
- Lee y compila el código
- Ejecuta el script
- Genera la respuesta
- Termina el proceso y libera la memoria
Este diseño hace que PHP sea muy escalable. No hay memoria compartida entre peticiones que pueda corromperse. Para mantener estado (como sesiones de usuario), usamos cookies, sesiones o bases de datos.
PHP como CLI vs PHP en servidor
PHP puede ejecutarse de dos formas:
1. Línea de comandos (CLI)
Es lo que hemos usado hasta ahora: ejecutar
php archivo.php
directamente en la terminal.
# Ejecutar un script
php mi_script.php
# Ejecutar código inline
php -r 'echo "Hola";'
Útil para: scripts de automatización, cron jobs, comandos de consola, herramientas de desarrollo.
2. Servidor web
PHP se integra con un servidor web (Apache, Nginx) para responder a peticiones HTTP.
# Iniciar servidor de desarrollo integrado
php -S localhost:8000
# Ahora puedes visitar http://localhost:8000 en tu navegador
Útil para: aplicaciones web, APIs, sitios dinámicos.
PHP mezclado con HTML
Una característica única de PHP es que puede mezclarse directamente con HTML. El servidor procesa las partes PHP y deja el HTML intacto.
<!DOCTYPE html>
<html>
<head>
<title>Mi página</title>
</head>
<body>
<h1>Bienvenido</h1>
<p>Hoy es <?php echo date('d/m/Y'); ?></p>
<?php
$nombre = 'Carlos';
echo "<p>Hola, $nombre</p>";
?>
</body>
</html>
El navegador recibe:
<!DOCTYPE html>
<html>
<head>
<title>Mi página</title>
</head>
<body>
<h1>Bienvenido</h1>
<p>Hoy es 08/12/2025</p>
<p>Hola, Carlos</p>
</body>
</html>
Aunque PHP permite mezclar código con HTML, en aplicaciones modernas se separa la lógica (PHP) de la presentación (HTML/templates). Frameworks como Laravel usan motores de plantillas como Blade para esto.
El servidor de desarrollo de PHP
PHP incluye un servidor web integrado perfecto para desarrollo. No necesitas configurar Apache ni Nginx para empezar.
# Navega a tu carpeta de proyecto
cd ~/proyectos/mi-app
# Inicia el servidor en el puerto 8000
php -S localhost:8000
# Si tienes un archivo index.php, se servirá automáticamente
# Visita http://localhost:8000 en tu navegador
Con estos conceptos claros, estás listo para empezar a programar en serio. En la siguiente sección aprenderás los fundamentos del lenguaje: variables, tipos de datos, operadores y más.
Ejercicios
Ejercicio 1: Servidor de desarrollo
Crea un archivo index.php en una
carpeta nueva. El archivo debe mostrar un
mensaje de bienvenida. Luego inicia el servidor
de desarrollo de PHP y visita la pagina en tu
navegador.
Ver solucion
<?php
declare(strict_types=1);
echo '<h1>Bienvenido a mi primera pagina PHP</h1>';
echo '<p>El servidor de desarrollo esta funcionando correctamente.</p>';
Luego en la terminal, navega a la carpeta y ejecuta:
php -S localhost:8000
Abre tu navegador y visita
http://localhost:8000
Ejercicio 2: Mezclar PHP y HTML
Crea un archivo fecha.php que
muestre una pagina HTML completa con un titulo y
un parrafo que diga "Hoy es:" seguido de la
fecha actual. Usa
date('d/m/Y') para obtener la
fecha.
Ver solucion
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Fecha actual</title>
</head>
<body>
<h1>Informacion del dia</h1>
<p>Hoy es: <?php echo date('d/m/Y'); ?></p>
</body>
</html>
Ejercicio 3: Informacion del servidor
Crea un archivo servidor.php que
muestre la version de PHP y el sistema operativo
del servidor. Usa las constantes
PHP_VERSION y PHP_OS.
Ver solucion
<?php
declare(strict_types=1);
echo "<h1>Informacion del servidor</h1>\n";
echo "<p>Version de PHP: " . PHP_VERSION . "</p>\n";
echo "<p>Sistema operativo: " . PHP_OS . "</p>\n";
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¡Has completado la sección de Introducción!
Ahora que entiendes los conceptos básicos, es hora de aprender a programar. Continúa con la sección de Fundamentos.
Continuar a Fundamentos