[SOLUCIONADO] Problemas al registrar sistema propio en Toba

Buenos dias!! necesito ayuda para registrar un aplicativo !!!

Instalo toba 3 a través del template de proyecto nuevo, cargo el proyecto, todo bien.
Ahora lo quiero registrar en Registry siguiendo la documentación (http://documentacion.siu.edu.ar/wiki/SIU-Arai/usuarios/integracion-inicial-toba).
Creo en la raiz del proyecto el archivo “arai.json” que contiene:

{
  "name": "weme",
  "description": "UNR-WeMe, Mesa de Entradas Web",
  "scripts": {
    "hooks": "weme\\AraiRegistryHooks"
  },

  "consume": [
    {
      "name": "service:siu/sso-saml-idp",
      "version": ">=0.1.0"
    },
    {
      "name": "api:siu/arai-usuarios",
      "version": ">=0.1.0",
      "options": {
        "toba-rest": [
          { "proyecto": "toba_usuarios", "rest-id": "rest_arai_usuarios" }
        ]
      }
    }
  ]
}

Creo la carpeta src en la raiz del proyecto, creo otra carpeta con el nombre del proyecto y dentro de esta última creo el archivo “AraiRegistryHooks.php”
con el siguiente contenido:


<?php
namespace weme;
use SIUToba\Framework\Arai\RegistryHooksProyectoToba;
class AraiRegistryHooks extends RegistryHooksProyectoToba
{
}
?>

Al correr el comando :

C:\toba3\weme>arai-cli registry:add --maintainer AdminWeME --maitainer-email Adm
inWeME@unr.edu.ar http://192.168.100.180/arai-registry/rest

Me tira el siguiente error :

[Exception] La clase '\weme\AraiRegistryHooks' no existe.

Gracias por cualquier tipo de ayuda que puedan proporcionar!
Saludos

Hola Oscar!

Una duda… como configuraste tu archivo composer.json respecto al autoloader? Registraste el dir src como para que sea tenido en cuenta en el autoloading?

Algo así podría servirte:


 "autoload": {
    "psr-4": { "": "src" }
  },

Saludos!

Hola Sergio:
Gracias por tu pronta respuesta!!

Registraste el dir src como para que sea tenido en cuenta en el autoloading?
No lo hice, porque no esta claro en el instructivo que hay que hacerlo, tené en cuenta que estamos usando Composer por primera vez porque es un requerimiento del SIU, no tenemos experiencia en su uso, como la mayoría que venimos usando php y toba desde hace años.

Luego de registrar el directorio, hay que correr algún comando para actualizar las dependencias ??

Corrí

 composer update

después de registrar la carpeta ‘src’ como me indicaste y luego de configurar todas las variables de entorno y ejecutar me tira el siguiente error:

C:\toba3\weme>arai-cli registry:add -m AdminWeME -e AdminWeME@unr.edu.ar http://
192.168.100.180/arai-registry/rest

Warning: array_keys() expects parameter 1 to be array, null given

Claro, esto es así, Composer es el gestor de dependencias y librerías de los proyectos PHP, con la plataforma Araí todos lo vamos a estar utilizando y uds como desarrolladores PHP les resultaría mucho mas fácil y eficiente gestionar sus propios proyectos vía Composer. Digamos, no es un requerimiento del SIU sinó es que este camino es el que está transitando el desarrollo de Software en general.

Genial, con registrar cual es el directorio de código fuente de uds ya estaría todo listo. Este error que arroja ya es un problema o de config o de la instalación. Tenemos que ir paso a paso para revisar. Primero que nada, ¿que versión de Araí-Registry están utilizando?

También, desde la aplicación de uds debería ser posible depurar o ver los logs de la ejecución. O al menos el error que les dió con la traza completa… ese mensaje está truncado.

Versiones involucradas :

  • SIU-Araí Usuarios: versión 1.2.0
  • SIU-Araí Registry: versión 1.1.0
  • SIU-Huarpe: versión 1.1.0
  • SIU-Toba: version 3.0.9

Tengo entendido que son las últimas versiones de cada uno de los componentes…

Como puedo ver la pila de llamadas y/o más detalle en la exposición de los errores, probé con la opcion “–verbose” pero no me arrojo nada …

Un camino es que el error se registre en el log del apache. Si en PHP está activado error_reporting, en el log debería decir algo más, al menos la ruta del archivo y la línea del error.

También, desde la aplicación de uds debería ser posible depurar o ver los logs de la ejecución. O al menos el error que les dió con la traza completa... ese mensaje está truncado.

Es lo único que muestra!!!, y en el log de apache no hay nada; por otro lado, los log de la aplicación nada tienen que ver con este proceso, nunca llega a correr nuestro app.

Alguna otra opcón de corregir esto??

Hola!
Todo pareciera indicar que tenés problemas de autoloading.
Si en tu composer pusiste esto:

"autoload": {
    "psr-4": { "": "src" }
  },

básicamente le estás diciendo a composer que todas las clases que tenga que buscar lo haga en el dir src.
Entonces, tenés que poner todas las clases dentro de la carpeta src. Por ejemplo, la clase que mencionás debería estar en un archivo en el siguiente directorio

src/weme/AraiRegistryHooks.php

Si querés ver más ejemplos, acá hay http://www.php-fig.org/psr/psr-4/#3-examples

Respondí a otra cosa. Perdón.

Mirando un poco el código, puede ser que el error sea xq no tenés provisiones en tu arai-cli. Agregá una provision a tu arai.json. Que quede así:


{
  "name": "weme",
  "description": "UNR-WeMe, Mesa de Entradas Web",
  "scripts": {
    "hooks": "weme\\AraiRegistryHooks"
  },
  "provide": [

  ],
  "consume": [
    {
      "name": "service:siu/sso-saml-idp",
      "version": ">=0.1.0"
    },
    {
      "name": "api:siu/arai-usuarios",
      "version": ">=0.1.0",
      "options": {
        "toba-rest": [
          { "proyecto": "toba_usuarios", "rest-id": "rest_arai_usuarios" }
        ]
      }
    }
  ]
}

Si te funciona con esto, por favor comentá xq es un bug

Si te funciona con esto, por favor comentá xq es un bug

Funcionó :frowning:

Además ahora cuando quiero removerlo me arroja error:

C:\toba3\weme>arai-cli registry:remove

[Symfony\Component\Console\Exception\InvalidArgumentException]
The helper “dialog” is not defined.

Hola Oscar!

Ambos errores ya lo solucionamos en desarrollo, en la próxima versión del componente arai-cli estaría disponible el arreglo. Vamos a coordinar para que distribuya esta versión.

Si necesitas remover un componente de Registry, podes hacer esto:

[ol]- En donde tengan instalado Registry, ejecutar [b]./bin/console packages:remove ID[/b]. (con packages:list pueden ver el id)

  • En el proyecto que quieran remover (ej. su desarrollo propio en Toba) eliminar el archivo arai.lock[/ol]

Espero les sirva, saludos!