Si, esta hecho el bin/guarani autoload y bin/guarani pers_autoload


![]()
Esta es la que me hace mas ruido ahora ya que no figura la que necesito:
Te paso los pasos que hice:
Ejecuté bin/guarani esquema_pers iniciar (ver Activación del esquema de personalizaciones).
Personalicé co_preinscripciones en personalizacion/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php:
<?php
class co_preinscripciones_unla extends co_preinscripciones
{
function funcion_personalizada($nombre)
{
return "Hola {$nombre}";
}
}
bin/guarani pers_autoload (ver Interconexión entre SIU-Guaraní Gestión y 3w).En personalizacion/php/guarani_clases_consultas_nuevas.php quedo así:
static $clases = array(
'co_preinscripciones' => array('clase'=>'co_preinscripciones_unla','path'=>'../../pers_gestion/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php'),
'co_usuarios' => array('clase'=>'co_usuarios_pers','path'=>'../../pers_gestion/php/nucleo/_lib/usuarios/co_usuarios_pers.php'),
);
Cuando lo subas a Gestión y ejecutes svn up en Autogestión, luego en src/pers_gestion/php/guarani_clases_consultas_nuevas.php deberás tener la clase personalizada.
Fíjate que en https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unla/3w/trunk/3.22.2/src tenes el svn:external llamado pers_gestion que apunta a https://colab.siu.edu.ar/svn/guarani3/nodos/unla/gestion/trunk/3.22.2/personalizacion/
En https://colab.siu.edu.ar/svn/guarani3/nodos/unla/gestion/trunk/3.22.2/personalizacion/php/guarani_clases_consultas_nuevas.php el array esta vacío:
static $clases = array();
Ejemplo de uso:
$clase = toba::consulta_php('co_preinscripciones');
var_dump(get_class($clase));
$datos = $clase->funcion_personalizada('José');
var_dump($datos);
Me muestra:
string(24) "co_preinscripciones_unla"
string(9) "Hola José"
Saludos.
Veo que 3w 3.22.2.9 apunta Gestión 3.22.2.15, pero en personalizacion/php/guarani_clases_consultas_nuevas.php no veo a co_preinscripciones_unla .
No, por eso te decía que llama la atencion. Estoy revisando los pasos, pero no veo nada raro aun.
Revise la configuracion de toba de nuevo, y esta como te pase / y como la hiciste vos la clase consulta. Pero al generar el bin / guarani pers_autoload no lo agrega en el archivo al array.
Es extraño, a mi me lo agrego automáticamente, si podes agrégalo manualmente en personalizacion/php/guarani_clases_consultas_nuevas.php para ver si así funciona.
Si, ahi lo puse a mano y funciono.
Hola, sigo sin poder generar correctamente los archivos autoload. Modifico a mano el de gestion (personalizacion/php/guarani_clases_consultas_nuevas.php) y lo dejo de esa forma? Como dice “no modificar a mano”, nose que problema podria traer mas adelante.
Yo probe modificando el de 3w que apunta a pers_gestion y funciono. Pero entiendo que lo mejor (aunque no es del todo correct) es modificar el de gestion y que se replique en 3w.
Hola @rmansilla
Observo lo siguiente:
Hola, sigo sin poder generar correctamente los archivos autoload. Modifico a mano el de gestion (personalizacion/php/guarani_clases_consultas_nuevas.php) y lo dejo de esa forma? Como dice “no modificar a mano”, nose que problema podria traer mas adelante.
¿ejecutaste bin/guarani pers_autoload?
Yo probe modificando el de 3w que apunta a pers_gestion y funciono. Pero entiendo que lo mejor (aunque no es del todo correct) es modificar el de gestion y que se replique en 3w.
La ultima versión de 3w que veo es la 3.22.2.9, la cual dice Property svn:externals set to pers_gestion. Con lo cual vos al commitear en Gestión 3.22.2.15, luego cuando hagas svn update en 3w va a tener que descargar los cambios, ya que dicho svn:externals es como un link simbólico.
Ver Interconexión entre SIU-Guaraní Gestión y 3w
Saludos.
¿ejecutaste `bin/guarani pers_autoload`?
Si, lo ejecute y NO agrega la clase co_preinscripcion_unla de forma automática
Entiendo. Yo para probar cuando me pediste que edite el archivo manualmente lo hice en el de 3w. Pero entonces, de tener que editarlo manualmente lo hago en Gestion y actualizo los externals.
Si, lo ejecute y NO agrega la clase co_preinscripcion_unla de forma automática
A mi me genera todo bien, te cuento los pasos que realicé en Guaraní Gestión:
Activación del esquema de personalizaciones ejecutando bin/guarani esquema_pers iniciar.
Agregué la clase personalizacion/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php:
<?php
/**
*
*
* @package Matrícula
* @subpackage Inscripciones
*
*/
class co_preinscripciones_unla extends co_preinscripciones
{
}
bin/guarani exportar lo cual modifica metadatos/tablas/apex_consulta_php.sql:INSERT INTO apex_consulta_php (proyecto, consulta_php, clase, archivo_clase, archivo, descripcion, punto_montaje) VALUES (
'guarani', --proyecto
'41000026', --consulta_php
'co_preinscripciones', --clase
'co_preinscripciones_unla', --archivo_clase
'nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php', --archivo
NULL, --descripcion
'34000001' --punto_montaje
);
bin/guarani pers_autoload y me queda todo esto modificado:2f5cf3ee8f11:~$ svn st
M metadatos/tablas/apex_consulta_php.sql
M personalizacion/personalizacion.ini
M personalizacion/php/guarani_autoload_clases_nuevas.php
M personalizacion/php/guarani_clases_consultas_nuevas.php
? personalizacion/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php
personalizacion/php/guarani_clases_consultas_nuevas.php dice:
static $clases = array(
'co_preinscripciones' => array('clase'=>'co_preinscripciones_unla','path'=>'../../pers_gestion/php/nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php'),
'co_usuarios' => array('clase'=>'co_usuarios_pers','path'=>'../../pers_gestion/php/nucleo/_lib/usuarios/co_usuarios_pers.php'),
);
Hace todo primero en Gestión, luego 3W descarga los cambios al actualizar svn up a través de los svn externals.
Saludos.
No hay caso, repetí varias veces los pasos que indicas y no me funciona.
Hasta acá funciona, esta así mi clase apex_consulta_php.
Pero después de ejecutar bin/guarani pers_autoload el archivo personalizacion/php/guarani_autoload_clases_nuevas.php muestra el co_preinscripciones_unla pero personalizacion/php/guarani_clases_consultas_nuevas.php no.
Puede ser que haya que limpiar alguna cache de toba o algo? no se me ocurre que más probar.
@rmansilla Estuve viendo código del comando bin/guarani pers_autoload, y no se modifica desde el año 2013, con lo cual lo que ejecutas vos es lo mismo que estoy ejecutando yo.
Viendo php/extension_toba/guarani_extractor_clases_consultas.php observo que se ejecuta una query para obtener las clases de consultas, ¿que te devuelve si ejecutas lo siguiente?
SELECT valor FROM par_configuraciones WHERE nombre = 'schema_toba';
A mi me devuelve desarrollo.
SELECT clase, archivo as path, archivo_clase, path_pm
FROM desarrollo.apex_consulta_php
LEFT JOIN desarrollo.apex_puntos_montaje ON (apex_consulta_php.punto_montaje=apex_puntos_montaje.id
AND apex_consulta_php.proyecto=apex_puntos_montaje.proyecto)
WHERE apex_consulta_php.proyecto = 'guarani'
AND apex_consulta_php.punto_montaje <> 1
ORDER BY archivo_clase;
A mi me devuelve:
| clase | path | archivo_clase | path_pm |
|---|---|---|---|
| co_preinscripciones | nucleo/matriculas/inscripciones/propuestas_preinscripcion/co_preinscripciones_unla.php | co_preinscripciones_unla | personalizacion/php |
| co_usuarios | nucleo/_lib/usuarios/co_usuarios_pers.php | co_usuarios_pers | personalizacion/php |
Saludos.
GRACIAS GRACIAS GRACIAS!
Para tener datos academicos actualizados en el bases.ini de desarrollo apuntaba a preproduccion y el schema_table no coincidia.
Modifique el bases.ini y funcionó finalmente.
Ya se que al generar los autoload tengo que hacer esto. Imposible darme cuenta sin tu ayuda.
Me re alegro @rmansilla
Entonces el problema era que en instalacion/bases.ini apuntabas a otra DB donde figuraban otras clases de consultas personalizadas.
Saludos.