Download?????? Conjugador Andaluz PHP

Un script PHP que conjuga verbos del español y los translitera a una propuesta de Estándar Andaluz (EPA) utilizando la librería andaluh/andaluh-epa y un servicio externo para la conjugación base en español.
? Características Principales
-
Conjugación Verbal: Toma un verbo en infinitivo (en español estándar o con terminaciones andaluzas como `-âh`, `-êh`, `-îh`) y obtiene sus conjugaciones en español.
-
Transliteración a EPA: Convierte las conjugaciones obtenidas al estándar EPA propuesto.
-
Mapeo y Normalización: Incluye un extenso mapeo (`$verboMappings`) y funciones (`replaceEnding`, etc.) para manejar variantes y normalizar verbos de entrada antes de la conjugación.
-
API Simple: Expone la funcionalidad a través de una petición HTTP GET.
-
Filtrado: Permite opcionalmente solicitar solo un tiempo (`t`) y modo (`m`) verbal específico.
-
Correcciones Específicas: Aplica ajustes post-conjugación para ciertos verbos o casos particulares.
?? Requisitos Previos
-
PHP: Versión 7.4 o superior recomendada.
-
Extensiones PHP:
* `curl`: Para realizar peticiones HTTP al servicio de conjugación.
* `json`: Para manejar las respuestas JSON (generalmente habilitada por defecto).
-
Composer: Para gestionar las dependencias PHP.
-
Docker: Para ejecutar el servicio de conjugación `verbecc-svc`.
-
Servicio
verbecc-svc en ejecución: Una instancia del servicio bretttolbert/verbecc-svc debe estar accesible.
? Instalación y Configuración
-
Clonar el Repositorio:
git clone https://github.com/kuasarx/conjugador
cd <NOMBRE_DEL_DIRECTORIO>
-
Instalar Dependencias PHP:
composer install
Esto descargará la librería `andaluh/andaluh-epa` y configurará el autoload.
-
? Ejecutar el Servicio verbecc-svc con Docker:
Este script depende de un servicio externo (`verbecc-svc`) para obtener las conjugaciones base en español. Puedes ejecutarlo fácilmente usando Docker:
docker run -d --name conjugador-servicio -p 32771:8080 bretttolbert/verbecc-svc:latest
* `-d`: Ejecuta el contenedor en segundo plano (detached).
* `--name conjugador-servicio`: Asigna un nombre al contenedor para fácil referencia.
* `-p 32771:8080`: Mapea el puerto `8080` del contenedor (donde escucha `verbecc-svc`) al puerto `32771` de tu máquina host.
-
? ¡Importante! Actualizar la URL del Servicio en el Código:
El código PHP tiene hardcodeada la URL `http://192.168.0.84:32771`. Debes cambiarla para que apunte a donde está corriendo tu contenedor Docker.
Si Docker corre en la misma máquina donde ejecutas PHP:* Probablemente puedas usar `localhost` o `127.0.0.1`.
Si Docker corre en otra máquina:* Usa la IP de esa máquina.
Modifica la siguiente línea dentro de la clase `Conjugador`, método `get_conjugaciones`:
// Dentro del método get_conjugaciones()
// CAMBIA ESTA LÍNEA:
// $url = "http://192.168.0.84:32771/conjugate/es/".urlencode($this->verbo);
// POR ESTA (si Docker está en la misma máquina):
$url = "http://localhost:32771/conjugate/es/".urlencode($this->verbo);
// O usa la IP correcta si Docker está en otra máquina.
? Uso
Para usar el conjugador, necesitas ejecutar el script PHP a través de un servidor web (como Apache o Nginx con PHP-FPM) o usando el servidor web incorporado de PHP para pruebas:
php -S localhost:8000
Luego, realiza una petición GET al script, pasando el verbo a conjugar en el parámetro q .
Ejemplos:
-
Conjugar "hablâh":
http://localhost:8000/conhugaôh.php?q=hablâh
(Asumiendo que tu archivo se llama `conhugaôh.php`)
-
Conjugar "comêh":
http://localhost:8000/conhugaôh.php?q=comêh
-
Conjugar "bîbbîh":
http://localhost:8000/conhugaôh.php?q=bîbbîh
-
Conjugar "çêh" (verbo 'ser'):
http://localhost:8000/conhugaôh.php?q=çêh
-
Obtener solo el presente de indicativo de "açêh" (verbo 'hacer'):
(Nota: Los parámetros m (modo) y t (tiempo) deben usar las claves transliteradas devueltas por la API)
http://localhost:8000/conhugaôh.php?q=açêh&m=indicatibo&t=preçente
-
Obtener solo el infinitivo de "paçâh" (verbo 'pasar'):
http://localhost:8000/conhugaôh.php?q=paçâh&m=infinitibo
Respuesta:
El script devolverá una estructura JSON con las conjugaciones transliteradas al estándar EPA. Si se especifican m y t , la respuesta se filtrará a ese modo y tiempo específicos.
? Estructura del Código
-
Conjugador (Clase Principal):
* `__construct($verbo)`: Inicializa el objeto, normaliza el verbo de entrada y obtiene las conjugaciones base.
* `partialTranscribtion($verbo)`: Convierte terminaciones como `-âh` a `-ar`.
* `get_conjugaciones()`: Realiza la llamada cURL al servicio `verbecc-svc` para obtener las conjugaciones en español.
* `translate_array($arr)`: Helper para transliterar los elementos de un array usando `AndaluhEpa`.
* `conjugate()`: Orquesta la transliteración de las conjugaciones españolas al formato EPA, manejando pronombres y estructuras específicas.
-
$verboMappings (Array): Un diccionario para mapear formas verbales de entrada específicas a su infinitivo estándar o forma base antes de la conjugación.
-
Funciones de Reemplazo (
replaceEnding , replaceFirst_H_Letter , etc.): Aplican reglas de sustitución de cadenas para normalizar o corregir la forma del verbo antes o después de la conjugación.
-
Lógica Principal (Fuera de la clase):
* Procesa el parámetro `$_REQUEST['q']`.
* Aplica mapeos y reemplazos iniciales.
* Instancia `Conjugador`.
* Obtiene las conjugaciones (`conjugate()`).
* Aplica correcciones post-conjugación.
* Devuelve el resultado en formato JSON, aplicando filtros si `$_REQUEST['t']` y `$_REQUEST['m']` están presentes.
? Dependencias
Licencia
Este proyecto se distribuye bajo la Licencia MIT. Ver el archivo LICENSE para más detalles (si existe) o consultar MIT License.
|