Aplicación en PHP (en consola) que toma como mínimo las tres primeras letras para consultar coincidencias en el nombre de sus clases y exámenes en su base de datos.
Antes de instalar, por favor asegúrate de tener instalado lo siguiente:
- PHP 8.x con las extensiones:
pdopdo_mysql
- Composer (para gestionar dependencias)
- Un servidor de base de datos MySQL/MariaDB
git clone https://github.com/mizunie/retoPhp.git
cd retoPhp cp phpunit.xml.dist phpunit.xml composer install- Crear una base de datos en MySQL/MariaDB.
- Importar el esquema desde ./schema.sql.
- Modificar las configuraciones necesarias en ./config.php.
Ir al directorio del proyecto.
cd retoPhpEjecutar el archivo principal.
php .\main.php search <Texto a buscar (mínimo 3 caracteres)>Para ejecutar las pruebas, escriba el siguiente comando:
vendor/bin/phpunitEste repositorio usa GitHub Actions para ejecutar pruebas en cada PR dirigido a la rama principal (master). Puedes revisar la configuración en .github/workflows/ci.yml.
La consulta utiliza MATCH - AGAINST en lugar de LIKE para mejorar el rendimiento. Se realizaron pruebas con ~100.000 registros y se obtuvieron los siguientes resultados:
MATCH - AGAINST es hasta 35x más rápido que LIKE 'search%'. Se ejecuta en 0.0006s en comparación con 0.0213s.