APIs He desarrollado 3 tipos de funcionamiento: - Include a un php, luego utilización de sus funciones con parámetros internos (entorno Zend) Ej: importar asistencias desde Ajna Centros, generar deudas mensuales - Utilización de variables vía cron (entorno Zend) Ej: get cursos para inscripciones (aunque no utiliza variables cron, dicho desarrollo lo permite ) - Scripts breves ( sin entorno Zend ) Ej: actualización de claves -------------------------------------------------------------------------------- IMPORTANTE: Me resta hacer limpieza en la definición de funciones, ya que muchas se encuentran duplicadas en distintos PHP, debido a que al principio la idea era hacer un php que hiciera toda la tarea, incluyendo en ellos cada función que precisará, pero ello fue creciendo, y ahora sería mucho más prolijo unificar todas en un solo PHP. Esa fue la intención al crear la carpeta api/funciones/...php con la idea de agrupar las funciones de acuerdo a su funcionalidad. Paths PATH_PUBLIC Sirve para invocar apis desde url. /gestion_estudiantes/public/api/url/NOMBRE_API /gestion_estudiantes/public/api/test/NOMBRE_API PATH_PRIVADO Ejecución de procesos internos. /gestion_estudiantes/api/MODULO/NOMBRE_API -------------------- SOLICITUD DESDE PATH_PUBLIC Ej: require '../../cargar_seteo.php'; include ( __GESTION_DIR_ABSOLUTO_AL_PROYECTO__.'api/cuentas_corrientes/generar_deudas_en_items_en_fecha_de_inicio_deuda.php' ); $resultado = generarDeudasMensuales(); echo $resultado; EJECUCIÓN en PATH_PRIVADO El php declara funciones que puede usar el requiriente. He desarrollado 3 formas en que puede ser invocado: - Forma 1- No usa Zend. Las funciones y querys están en el propio php. - Forma 2- Usa Zend. Incluye las fns para manejo de Zend en modo Batch, permisos y vars globales: include __GESTION_DIR_ABSOLUTO_AL_PROYECTO__.'api/cargarZendBatch.php'; include __GESTION_DIR_ABSOLUTO_AL_PROYECTO__.'api/cargarPermisosBatch.php'; Luego incluye el modelo que precisa: require_once 'api/models/ApiCuentaCorriente.php'; Y finalmente define la función que es invocada por el llamador. 2.a) Sin parámetros. 2.b) Pasando parámetros explícitamente a la fn. 2.c) Pasando parámetros vía GET, POST o SHELL. Ej. de una función que es invocada: function generarDeudasMensuales() { $arrayParametrosQuePodríanEstarEnShell = array( // es importante mantener el orden de estos nombres tal como ingresan los valores en shell 'sedes_id', // INT parametro 1 para shell 'fecha_desde', // YYYY-MM-DD parametro 2 para shell 'fecha_hasta', // YYYY-MM-DD parametro 3 para shell ); $params = getAllParams( $arrayParametrosQuePodríanEstarEnShell ); $model = new ApiCuentaCorriente(); return $model->generarDeudasEnFechaDeCobro( $params ); } -------------------------------------------------------------------------------- ej de uso en cron: /usr/bin/php /web_yoga/gestion_estudiantes/api/file.php param1 param2 param3