Problema luego de instalar toba 3.3.26

Buenos días, actualmente estoy tratanto de implementar la ultima versión de toba 3, y luego de la instalación he tenido algunos problemas para poder entrar con mi usuario toba a el toba editor.
El error es el siguiente.

Fatal error: Uncaught Error: Call to undefined method toba_nucleo::instancia() in /home/andy/Trabajo/TOBA3/proyectos/toba_editor/www/aplicacion.php on line 17
Error: Call to undefined method toba_nucleo::instancia() in /home/andy/Trabajo/TOBA3/proyectos/toba_editor/www/aplicacion.php on line 17

Me ayudaría mucho saber que puede ocacionar el error o como poder solucionarlo.

Actualmente el entorno está creado usando:
TOBA 3.3.26
PHP 7.4
Postgres 11.20
Composer 2.0.14


Captura de pantalla de 2023-08-08 13-33-49.png

Captura de pantalla de 2023-08-08 13-33-49.png

Hola Lucas bienvenido,

te consulto, que pasos seguiste para la instalacion del framework?.. pareciera que algun paso no se completo correctamente.

Saludos

Buen día! Segui la siguiente guía de instalación: https://foro.comunidad.siu.edu.ar/index.php?topic=21387.0
Tambien use algunas de las indicaciones del readme que tiene el framework. Como alterar el composer.json con la version de toba a descargar.
Quedo así:

{
    "name": "siu-toba3/framework",
    "description": "Framework de desarrollo web",
    "authors": [
        {
            "name": "SIU",
            "email": "toba@siu.edu.ar"
        }
    ],
    "require": {
    	"ext-psr/ext-psr": "^1.2",
        "siu-toba/framework": "~3.3",
        "php": ">=7.3",
        "ext-curl": "*",
        "dapphp/securimage": "~3.6",
        "guiguiboy/php-cli-progress-bar": "dev-master",
        "guzzlehttp/guzzle": "~6.5",
        "ioncube/php-openssl-cryptor": "dev-master",
        "nikic/php-parser": "~4.4",
        "onelogin/php-saml": "~3.4",
        "paragonie/random-lib": "~2.0",
        "phpmailer/phpmailer": "~6.5.0",
        "phpoffice/phpspreadsheet": "~1.23",
        "psr/log": "~1.1",
        "rospdf/pdf-php": "~0.12",
        "siu-toba/numbers_words": "0.18.0.1",
        "siu-toba/rest": "~2.0",
        "siu-toba/services_json": "^1.0.3.3",
        "siu-toba/ssl-cert-utils": "~1.0",
        "siu-toba/structures_graph": "^1.1.1.1",
        "siu/arai-json-migrator": "~1.1",
        "siu/manejador-salida-toba": "~1.1",
        "siu/interfaces-manejador-salida-toba": "~1.2.0",
        "siu/security-multitool": "~1.1",
        "symfony/yaml": "~4.4",
        "vlucas/phpdotenv": "~3.6"
    },
    "conflict": {
        "siu/arai-cli": "<3.0.0",
        "siu/interfaces-manejador-salida-toba": "<1.2.0"
    },
    "require-dev": {
        "greenlion/php-sql-parser": "@dev",
        "php-webdriver/webdriver": "~1.8",
        "simpletest/simpletest": "~1.2",
        "siu-toba/text_highlighter": "~0.8",
        "siu/arai-cli": "*",
        "siu/arai-crypto": "*",
        "siu/arai-json-parser": "*",
        "siu/manejador-salida-bootstrap": "~1.3"
    },
    "suggest": {
        "simplesamlphp/simplesamlphp": "Permite conectarse a un IDP centralizado (see onelogin)",
        "siu/arai-cli": "Librería cliente de los componentes ARAI",
        "siu/arai-reportes": "Permite imprimir reportes via un servidor Jasper desde SIU-Toba",
        "siu/manejador-salida-bootstrap": "Permite generar un marcado HTML responsive",
        "siu/rdi": "Permite almacenar documentos en un ECM"
    },
    "autoload": {
        "psr-4": {
            "SIUToba\\Framework\\": "src/SIUToba/"
        }
    },
    "repositories": [
        {
            "type": "composer",
            "url": "https://satis.siu.edu.ar",
            "exclude": ["siu-toba/rest"]
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true,
    "bin": [
        "bin/toba",
        "bin/toba_docker"
    ],
    "scripts": {
        "post-install-cmd": [
            "yarn add ckeditor4@4.18 jquery@3.6 jquery-migrate@3.3 siu-js-app-launcher@1.0.6 --modules-folder www/js/packages/",
            "yarn ",
            "php bin/instalar_assets.php"
        ],
        "post-update-cmd": [
            "yarn  --non-interactive --modules-folder www/js/packages/",
            "php bin/instalar_assets.php"
        ]
    }
}

Y si bien pude instalar las dependencias con “composer install” sin problemas, al utilizar “composer update”. Me sale el siguiente error.

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires PHP extension ext-psr/ext-psr ^1.2 but it is missing from your system. Install or enable PHP's psr/ext-psr extension.

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.4/cli/php.ini
    - /etc/php/7.4/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.4/cli/conf.d/10-opcache.ini
    - /etc/php/7.4/cli/conf.d/10-pdo.ini
    - /etc/php/7.4/cli/conf.d/15-psr.ini
    - /etc/php/7.4/cli/conf.d/15-xml.ini
    - /etc/php/7.4/cli/conf.d/20-amqp.ini
    - /etc/php/7.4/cli/conf.d/20-ast.ini
    - /etc/php/7.4/cli/conf.d/20-bcmath.ini
    - /etc/php/7.4/cli/conf.d/20-bz2.ini
    - /etc/php/7.4/cli/conf.d/20-calendar.ini
    - /etc/php/7.4/cli/conf.d/20-ctype.ini
    - /etc/php/7.4/cli/conf.d/20-curl.ini
    - /etc/php/7.4/cli/conf.d/20-dba.ini
    - /etc/php/7.4/cli/conf.d/20-dom.ini
    - /etc/php/7.4/cli/conf.d/20-enchant.ini
    - /etc/php/7.4/cli/conf.d/20-excimer.ini
    - /etc/php/7.4/cli/conf.d/20-exif.ini
    - /etc/php/7.4/cli/conf.d/20-facedetect.ini
    - /etc/php/7.4/cli/conf.d/20-ffi.ini
    - /etc/php/7.4/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.4/cli/conf.d/20-ftp.ini
    - /etc/php/7.4/cli/conf.d/20-gd.ini
    - /etc/php/7.4/cli/conf.d/20-gearman.ini
    - /etc/php/7.4/cli/conf.d/20-geoip.ini
    - /etc/php/7.4/cli/conf.d/20-gettext.ini
    - /etc/php/7.4/cli/conf.d/20-gmp.ini
    - /etc/php/7.4/cli/conf.d/20-gnupg.ini
    - /etc/php/7.4/cli/conf.d/20-iconv.ini
    - /etc/php/7.4/cli/conf.d/20-igbinary.ini
    - /etc/php/7.4/cli/conf.d/20-imagick.ini
    - /etc/php/7.4/cli/conf.d/20-imap.ini
    - /etc/php/7.4/cli/conf.d/20-intl.ini
    - /etc/php/7.4/cli/conf.d/20-json.ini
    - /etc/php/7.4/cli/conf.d/20-ldap.ini
    - /etc/php/7.4/cli/conf.d/20-lua.ini
    - /etc/php/7.4/cli/conf.d/20-lz4.ini
    - /etc/php/7.4/cli/conf.d/20-mbstring.ini
    - /etc/php/7.4/cli/conf.d/20-mcrypt.ini
    - /etc/php/7.4/cli/conf.d/20-memcache.ini
    - /etc/php/7.4/cli/conf.d/20-mongodb.ini
    - /etc/php/7.4/cli/conf.d/20-msgpack.ini
    - /etc/php/7.4/cli/conf.d/20-mysqli.ini
    - /etc/php/7.4/cli/conf.d/20-oauth.ini
    - /etc/php/7.4/cli/conf.d/20-odbc.ini
    - /etc/php/7.4/cli/conf.d/20-pcov.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_dblib.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_firebird.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_odbc.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini
    - /etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini
    - /etc/php/7.4/cli/conf.d/20-pgsql.ini
    - /etc/php/7.4/cli/conf.d/20-phar.ini
    - /etc/php/7.4/cli/conf.d/20-pinba.ini
    - /etc/php/7.4/cli/conf.d/20-posix.ini
    - /etc/php/7.4/cli/conf.d/20-propro.ini
    - /etc/php/7.4/cli/conf.d/20-ps.ini
    - /etc/php/7.4/cli/conf.d/20-pspell.ini
    - /etc/php/7.4/cli/conf.d/20-psr.ini
    - /etc/php/7.4/cli/conf.d/20-radius.ini
    - /etc/php/7.4/cli/conf.d/20-raphf.ini
    - /etc/php/7.4/cli/conf.d/20-readline.ini
    - /etc/php/7.4/cli/conf.d/20-redis.ini
    - /etc/php/7.4/cli/conf.d/20-rrd.ini
    - /etc/php/7.4/cli/conf.d/20-shmop.ini
    - /etc/php/7.4/cli/conf.d/20-simplexml.ini
    - /etc/php/7.4/cli/conf.d/20-smbclient.ini
    - /etc/php/7.4/cli/conf.d/20-snmp.ini
    - /etc/php/7.4/cli/conf.d/20-soap.ini
    - /etc/php/7.4/cli/conf.d/20-sockets.ini
    - /etc/php/7.4/cli/conf.d/20-solr.ini
    - /etc/php/7.4/cli/conf.d/20-sqlite3.ini
    - /etc/php/7.4/cli/conf.d/20-ssh2.ini
    - /etc/php/7.4/cli/conf.d/20-stomp.ini
    - /etc/php/7.4/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.4/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.4/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.4/cli/conf.d/20-tideways.ini
    - /etc/php/7.4/cli/conf.d/20-tidy.ini
    - /etc/php/7.4/cli/conf.d/20-tokenizer.ini
    - /etc/php/7.4/cli/conf.d/20-uopz.ini
    - /etc/php/7.4/cli/conf.d/20-uploadprogress.ini
    - /etc/php/7.4/cli/conf.d/20-uuid.ini
    - /etc/php/7.4/cli/conf.d/20-xdebug.ini
    - /etc/php/7.4/cli/conf.d/20-xhprof.ini
    - /etc/php/7.4/cli/conf.d/20-xmlreader.ini
    - /etc/php/7.4/cli/conf.d/20-xmlrpc.ini
    - /etc/php/7.4/cli/conf.d/20-xmlwriter.ini
    - /etc/php/7.4/cli/conf.d/20-xsl.ini
    - /etc/php/7.4/cli/conf.d/20-yaml.ini
    - /etc/php/7.4/cli/conf.d/20-zip.ini
    - /etc/php/7.4/cli/conf.d/20-zmq.ini
    - /etc/php/7.4/cli/conf.d/25-http.ini
    - /etc/php/7.4/cli/conf.d/25-mailparse.ini
    - /etc/php/7.4/cli/conf.d/25-memcached.ini
    - /etc/php/7.4/cli/conf.d/25-swoole.ini
    - /etc/php/7.4/cli/conf.d/30-decimal.ini
    - /etc/php/7.4/cli/conf.d/30-ds.ini
    - /etc/php/7.4/cli/conf.d/30-grpc.ini
    - /etc/php/7.4/cli/conf.d/30-inotify.ini
    - /etc/php/7.4/cli/conf.d/30-maxminddb.ini
    - /etc/php/7.4/cli/conf.d/30-protobuf.ini
    - /etc/php/7.4/cli/conf.d/30-rdkafka.ini
    - /etc/php/7.4/cli/conf.d/30-vips.ini
    - /etc/php/7.4/cli/conf.d/30-zstd.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Trate de solucionar la falta de “ext-psr/ext-psr ^1.2”, pero no logre hacerlo.

Disculpas, ya pude solucionar el problema de “psr”, restaure la version original del composer, agregue unicamente la linea:


    "require": {
        "siu-toba/framework": "~3.3",

Y actualice el nombre en el composer a el siguiente: ( por advertencia del mismo composer.)

{
    "name": "siu-toba3/framework",
    "description": "Framework de desarrollo web",
    "authors": [
        {
            "name": "SIU",
            "email": "toba@siu.edu.ar"
        }
    ]

Luego hice el correspondiente composer install e instaló las dependencias correctamente.

Paso siguiente ejecute los comandos:
export TOBA_INSTANCIA=$nombre_instancia
export TOBA_INSTALACION_DIR=$carpeta_instalacion

Luego inicie la instalacion, la cual concluyó sin errores.
Finalmente procedí a darle permisos a apache para las carpetas correspondientes, y terminé con un reinicie del servicio de apache2

Puedo ver la interface de logueo de toba, pero al querer acceder con el usuario “toba” a toba_editor sale el cuadro de error que mencione en la primera consulta.

( ! ) Fatal error: Uncaught Error: Call to undefined method toba_nucleo::instancia() in /home/andy/Trabajo/TOBA3/proyectos/toba_editor/www/aplicacion.php on line 17
( ! ) Error: Call to undefined method toba_nucleo::instancia() in /home/andy/Trabajo/TOBA3/proyectos/toba_editor/www/aplicacion.php on line 17

Hola Lucas,

Se me hace que estas usando el mismo archivo que viene incluido con el framework para instalar el framework, por ello tenes que incurrir en modificaciones extrañas que no son realmente necesarias. Te sugiero que uses este repositorio para hacer tanto la instalacion del framework como tener un ambiente de desarrollo para un proyecto especifico.

Saludos

Buen día, seguí los pasos del template y puede hacer la migración de un proyecto correctamente. Tuve algunos inconvenientes que fui solucionando a medida que iban ocurriendo.
Algunos errores ocurrieron durante la instalación por utilizar la versión 7.4 de php, se soluciono instalando 7.3, composer 2.10.3, y en mi caso en particular utilizar postgres 11.

Una observación que quiero agregar, es que trabajo con varios proyectos, y tengo entendido que cada proyecto tiene su propio Toba3, para evitar que un proyecto pise otro, tuve que modificar una variable de entorno que por defecto crea toba si esta no esta creada con anterioridad.

export TOBA_DIR=/home/usuario/nuevo_proyecto/vendor/siu-toba/framework/

Si no hacia eso, al ejecutar otra instalación de Toba3 pisaba todo lo que había hecho en la instalación anterior por mantener el directorio que utilizo antes.

Gracias!

Hola Lucas,

Tenes a mano una lista(o un log) de lo que te fue pasando? asi veo de solucionarlo si no es algo que dependa de otro paquete.

No hay mucho drama respecto de Postgres (suele ser compatible)… pero salvo que tengas alguna cuestion en particular de negocio, una vez tengas la migracion hecha te recomendo que te actualices a la ultima version (14 al menos) ya que hay varias cuestiones de seguridad que se fueron arreglando en el motor que te van a ayudar a prevenir problemas.

Una observación que quiero agregar, es que trabajo con varios proyectos, y tengo entendido que cada proyecto tiene su propio Toba3, para evitar que un proyecto pise otro, tuve que modificar una variable de entorno que por defecto crea toba si esta no esta creada con anterioridad.
Si, la idea es que cada proyecto se comporte mas como una aplicacion autocontenida y no se comparta la bd de Toba.
export TOBA_DIR=/home/usuario/nuevo_proyecto/vendor/siu-toba/framework/ Si no hacia eso, al ejecutar otra instalación de Toba3 pisaba todo lo que había hecho en la instalación anterior por mantener el directorio que utilizo antes.

La variable que se defaultea dentro del script solo debe durar la ejecucion del mismo, lo que te puede quedar luego es un archivo de entorno el cual se carga automaticamente al inicio de la ejecucion de un comando (al estilo direnv) para evitarte la definicion continua de las env-vars… pero de nuevo, duran solo la ejecucion del script puntual. Si cambias de directorio, este archivo ya no se puede cargar automaticamente y por ende no deberias tener las variables fijadas.

Si cargas el archivo manualmente (via source) entonces si se persiste la variable a toda ejecucion en dicha consola y se puede dar este problema que mencionas, en dicho caso con usar una consola nueva para la otra instalacion se solucionaria el inconveniente.

No digo que lo que hiciste este mal, si te manejas con las env-vars de forma practica mucho mejor… pero quizas no era necesario el ajuste explicito o si, segun como estes trabajando. En mi experiencia muchos problemas surgieron de un manejo manual de las variables de entorno, entonces prefiero evitarlo siempre que se pueda.

Saludos

Buen día!
Lamento informar que en su momento no guarde los logs de la instalacion. Y entre tantas pruebas y errores que cometí decidí hacer todo de cero cuando encontré la forma correcta, por lo cual borre todo lo anterior.

Si puedo describir el error, era que… Con php 7.4 la instalación de TOBA3 se realiza correctamente, pero al querer loguearme con el usuario toba en toba_editor después de ingresar usuario, contraseña y acceder, solo se veia una pantalla en blanco.
No podría ingresar a la interfaz de toba_editor para administrar los proyectos, pero si podía ver la pagina de login.

El error que tenía en ese momento era el siguiente:
(Al acceder a: localhost/toba_editor/3.3)
Fatal error: Uncaught error undefined method toba_nucleo::instancia() in… /proyectos/toba_editor/www/aplicacion.php on line 17


Respecto a las variables de entorno:
Detectamos que nosotros al hacer la instalación de varios proyecto con toba 3 en la misma maquina, todo durante la misma sesión, sin reiniciar, ni hacer otro tipo de reseteo. La variable de entorno TOBA_DIR sigue siendo siempre la misma que se definió en el primer proyecto, no cambiaba, entonces pisaba todos los proyectos que instaláramos luego.
Instalaba todo en el directorio /vendor/siu-toba/framework/ del primer proyecto levantado en esa sesión.

Por eso propusimos definir siempre una variable TOBA_DIR diferente antes de realizar nuevas instalaciones. Al mismo tiempo que definimos TOBA_INSTANCIA y TOBA_INSTALACION_DIR.

Espero que esto pueda ser de ayuda.

Hola Lucas,

No hay drama, queria ver si podia encontrar alguna referencia extra que me ayudara a reproducir el fatal que reportaste, simplemente eso… .si te vuelve a ocurrir y me podes subir los logs mejor.

El error que tenía en ese momento era el siguiente: (Al acceder a: localhost/toba_editor/3.3) Fatal error: Uncaught error undefined method toba_nucleo::instancia() in... /proyectos/toba_editor/www/aplicacion.php on line 17

Lo raro para mi es que la pagina de login se presenta via el mismo archivo, por lo cual de no existir dicho metodo… no deberias tener ni siquiera la pagina de login.
Quizas este relacionado con lo que me comentabas de la variable TOBA_DIR pero no puedo asegurarlo.

Respecto a las variables de entorno: Detectamos que nosotros al hacer la instalación de varios proyecto con toba 3 en la misma maquina, todo durante la misma sesión, sin reiniciar, ni hacer otro tipo de reseteo. La variable de entorno TOBA_DIR sigue siendo siempre la misma que se definió en el primer proyecto, no cambiaba, entonces pisaba todos los proyectos que instaláramos luego. Instalaba todo en el directorio /vendor/siu-toba/framework/ del primer proyecto levantado en esa sesión.
Estuve intentando replicar esto que me decis... el tema es que no logro que la variable quede fijada luego de la ejecucion del script de instalacion, por eso te consultaba.
Por eso propusimos definir siempre una variable TOBA_DIR diferente antes de realizar nuevas instalaciones. Al mismo tiempo que definimos TOBA_INSTANCIA y TOBA_INSTALACION_DIR.

Ojo que el Readme solo habla de las dos ultimas que mencionas, no dice nada sobre definir TOBA_DIR… de hecho esa se levantaria automaticamente cuando ejecutas el comando de instalacion desde la carpeta del proyecto.

Saludos