Creación de un bot interactivo en PHP desde terminal

Clase 12 de 23Curso de Fundamentos de PHP

Resumen

Construir un bot en PHP que simule una interacción en tiempo real puede sonar complejo, pero es sencillo si dominas lo básico. Vamos a usar Composer, organizar nuestra estructura de carpetas adecuadamente y aprender a manejar scripts ejecutables. Al finalizar, tendrás un programa capaz de interactuar con el usuario desde la terminal.

¿Qué estructura necesitamos para nuestro proyecto PHP?

La organización del proyecto siempre es el primer paso. Para construir nuestro bot interactivo en PHP, necesitamos:

  • Composer, para gestionar las dependencias.
  • Carpeta SRC, donde almacenaremos nuestros archivos principales.
  • Carpeta BIM (una convención histórica para ejecutables) que guarda scripts y archivos que generan acciones específicas.

Este orden nos permite una gestión eficiente y escalable.

¿Cómo crear un script PHP ejecutable?

Para lograr que nuestro archivo PHP sea completamente funcional desde el terminal, consideremos lo siguiente:

  • Inicia con la etiqueta <?php.
  • Usa echo combinado con PHP_EOL para asegurar que el terminal no muestre caracteres adicionales después del texto programado.

Ejemplo básico:

<?php
  echo "Escribe tu nombre: " . PHP_EOL;

Ejecutando este archivo desde la terminal con php bin/archivo.php, obtendremos una interacción limpia y funcional.

¿Cómo manejar interacciones del usuario usando PHP?

Para simular una interacción real, utilizaremos un bucle con while. La estructura habitual es:

<?php
while(true) {
  echo "Escribe algo: ";
  $input = trim(fgets(STDIN));

  if($input == "salir" || $input == "") {
    break;
  }

  echo "Procesando..." . PHP_EOL;
  sleep(2);
  echo "Respuesta simulada." . PHP_EOL;
}

La lógica del bucle es sencilla:

  • Solicita entrada al usuario.
  • Si detecta la palabra "salir" o recibe texto vacío, termina el ciclo.
  • Caso contrario, responde simulando un proceso de pensamiento con sleep(2).

¿Qué necesitas para hacer tu archivo ejecutable desde la terminal sin especificar PHP?

Para ejecutar el archivo directamente desde la terminal sin escribir "php", realiza estos pasos adicionales:

  • Añade la siguiente línea al inicio del archivo: #!/usr/bin/env php
  • Otorga permisos de ejecución desde terminal:
chmod +x bin/archivo.php

Ahora es posible ejecutar directamente:

./bin/archivo.php

¿Puedes mejorar tu bot con respuestas personalizadas?

Un desafío práctico para reforzar lo aprendido podría ser detectar palabras específicas, por ejemplo: hacer que el bot reconozca cuando el usuario escribe "hola" y devuelva un mensaje mucho más personalizado.

Comparte tu versión del script en los comentarios y continúa mejorando tu código PHP interactivamente.