Lección 4 de 75 8 min de lectura

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:

  1. El navegador envía una petición (request) al servidor
  2. El servidor web (Apache, Nginx) recibe la petición
  3. PHP procesa el archivo .php solicitado
  4. PHP genera una respuesta (normalmente HTML)
  5. El servidor envía la respuesta (response) al navegador
  6. El navegador renderiza el HTML recibido
Diagrama
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
¿Por qué es stateless?

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.

Bash
# 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.

Bash
# 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.

PHP
<!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:

HTML
<!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>
Buenas prácticas modernas

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.

Bash
# 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
Próximos pasos

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