Instalacion toba 3.0.2

Hola, estoy instalando la version 3.0.2 de Toba, mediante:

composer require siu-toba/framework

Luego

composer install
y
export TOBA_INSTANCIA=toba3.2
export TOBA_INSTALACION_DIR=/opt/toba

Pero no encuentro en ningún directorio la posibilidad de ejecutar:
toba instalacion instalar
Ni en /vendor/bin, ni en /vendor/siu-toba

¿Dónde debería estar el ejecutable “toba”?

Muchas gracias

Javier Bonfanti
UNR

Hola Javier, deberías ver el toba en vendor/bin
Fijate al momento de instalar el toba de usar el siguiente apartado del tutorial

https://github.com/SIU-Toba/framework#creando-un-proyecto-de-cero

Con eso pude instalarlo. Fijate que cuando te descargas el template del proyecto ahí tenes el composer.json tal cual como lo necesitas para empezar.

Saludos
José Piazza

Hola Javier,

el bin-dir en Toba esta apuntando a la ruta por defecto, esto es ./bin (segun documentacion de composer), lo que puede que te este faltando es una carpeta bin dentro del proyecto, parece que composer no la crea al momento de realizar la instalacion, lo que es una lastima.
De existir esa carpeta en la raiz del proyecto, al momento de realizar el install te deberia dejar un symlink al comando de toba que esta dentro de ‘vendor/siu-toba/framework/bin’ de manera que puedas ejecutarlo desde ahi mismo.

Un detalle extra, la variable de entorno TOBA_INSTALACION_DIR esta apuntando a la carpeta donde esta el proyecto o a una carpeta X donde queres que se guarden los archivos de config?..tene en cuenta que donde vos le indiques va a meter todo lo que hoy esta dentro de ‘./instalacion’. Incluido el archivo para cargar el entorno.

Saludos

Seguí el tutorial recomendado por Jose e instale toba 3.0.6 sin problemas

https://github.com/SIU-Toba/framework#creando-un-proyecto-de-cero

Veo que ahora todo el framework va a quedar incluido en la carpeta de cada proyecto, cual es la forma que recomiendan de gestionar los fuentes del proyecto con svn.

  • Subir todos los archivos al repositorio ?
  • Subir solo las carpetas en las cuales se almacenan los cambios que le hacemos al proyecto ( “php”, “metadatos” y “www” no se si me falta alguna … )

Por otro lado cada vez que creo un proyecto a través de composer puede traerme una versión más actualizada de Toba. Me conviene entonces guardar los metadatos de Toba en la bbdd del proyecto (antes la guardábamos en una bbdd “toba_nn_mm” ) ?

Agradezco desde ya cualquier consejo, sugerencia u opinión que me puedan dar a los respectos.

Hola Oscar,

Lo ideal seria que agregues la carpeta “vendor” al ignore-list, de forma que no te suba nada de alli dentro ya que de cualquier forma se instala/actualiza via composer, el resto lo seguis manejando como venias antes ya que son todos archivos del proyecto, inclusive los “composer.X”

Por otro lado cada vez que creo un proyecto a través de composer puede traerme una versión más actualizada de Toba. Me conviene entonces guardar los metadatos de Toba en la bbdd del proyecto (antes la guardábamos en una bbdd "toba_nn_mm" ) ?

Que al crear un proyecto de cero te traiga una version mas actualizada no tiene nada de malo, de hecho la idea es que la actualizacion via composer sea mas sencilla y por ello esten siempre sobre la ultima version con las librerias mas actualizadas.

Como cambia el rol de Toba (que pasa a ser mas una libreria para el proyecto), ahora cada proyecto puede ser un paquete autocontenido. Podes tenerlo dentro de la misma base o en una externa, todo depende de como lo gestiones.

Lo que si es mucho mas complicado ahora, es tener varios proyectos dentro de una misma “instancia”, ya que ahora vas a tener la carpeta “instalacion” contenida dentro de cada proyecto… con configuracion de instancia distinta, lo cual ante un descuido rompe seguro. No se si tu pregunta apuntaba a esto o a lo anterior.

Saludos

Richard gracias por tus respuestas!!!

Lo ideal seria que agregues la carpeta "vendor" al ignore-list
[b]Perfecto!! era lo que necesitaba saber...[/b]
Que al crear un proyecto de cero te traiga una version mas actualizada no tiene nada de malo
El tema es que cuando desarrollás en equipo, al correr el composer install con el configuración "^3." por ejemplo, instalará distintas versiones en los distintos equipos en la medida que vayan ocurriendo las actualizaciones del framework y las instalaciones de toba-proyecto (la aplicación). Nos pasó de instalar en el servidor de desarrollo la versión de toba 3.0.2 y a los pocos días un integrante del equipo que se sumó al desarrollo instaló la versión 3.0.6 no se que problemas puede traer aparejado este tipo de cosas; o sea el tema de la versión ser refiere al trabajo en grupo y no del equipo local. Quizás tenemos un flujo de trabajo incorrecto y no se si [b]hay que hacer coincidir "vendor" ?[/b] en los distintos equipos para asegurar que todo funcione de la misma manera, con las mismas versiones de todas las librerias?

Con respecto a la base de datos de toba la duda es como conviene tenerla, una por cada proyecto o como antes una por cada versión de toba

Hola Oscar,

estan commiteando el archivo .lock?, es importante que lo suban, de esa manera cuando ven que aparece en SVN saben que tienen que ejecutar un “composer update” para equiparar las versiones. De esa forma tarde o temprano terminan todos teniendo lo mismo, es un mecanismo de sincronizacion a los ponchazos… pero funciona porque no se sacan versiones a cada segundo.

Por otra parte, a produccion unicamente deberian enviar el archivo .lock de manera que solo se instalen las versiones que alli figuran, con eso se aseguran que en produccion se tiene lo mismo que en la maquina que arma la version y que funciona.

Nos pasó de instalar en el servidor de desarrollo la versión de toba 3.0.2 y a los pocos días un integrante del equipo que se sumó al desarrollo instaló la versión 3.0.6 no se que problemas puede traer aparejado este tipo de cosas;

En teoria ninguno, ya que son versiones dentro de la misma rama… de eso se encarga el versionado semantico de composer. Ciertamente hay cambios, mejoras, correcciones de bugs etc… es similar a lo que existia antes con svn, solo que menos manual. Hay que hacerse la costumbre de ir actualizando cada tanto, ya sea para obtener las mejoras o para avisar de un problema lo mas rapido posible, cuanto mas se tarda mas importantes son los cambios, por eso pasamos muchas libs a este esquema tambien.

o sea el tema de la versión ser refiere al trabajo en grupo y no del equipo local. Quizás tenemos un flujo de trabajo incorrecto y no se si [b]hay que hacer coincidir "vendor" ?[/b] en los distintos equipos para asegurar que todo funcione de la misma manera, con las mismas versiones de todas las librerias?
Es lo mismo, el mecanismo para "sincronizar" a alguien al otro lado del mundo que para la persona con la que compartis el mate sigue siendo lo que te contaba anteriormente.

Lo ideal es que todos tengan las mismas versiones, aunque no se deberia romper nada si el versionado es correcto, eso no quita que la libreria de un tercero pueda incluir un bugfix que se usaba como feature y eso genere un problema. Actualizando regularmente, sin quererlo vas llegando a que todos esten equiparados y vean lo mismo.

Con respecto a la [b]base de datos de toba[/b] la duda es [b]como conviene tenerla[/b],[b] una por cada proyecto[/b] o como antes [b]una por cada versión de toba[/b]....
Lo mas directo con esta organizacion nueva, es tener una por proyecto. Una por version de toba te va a generar problemas, ya que cada proyecto tiene su instalacion.. si haces un "instancia regenerar" en un proyecto.. hiciste pelota todo el resto, ya que esa instalacion.. no tiene conocimiento de que otras cosas estan cargadas.

Saludos

Hola!!
Me quedé con una duda:

¿ Cómo hago agreguego la carpeta “vendor” al ignore-list si tengo mi proyecto en “…vendor\siu-toba\framework\proyectos.…” ?

¿ Cómo hago agreguego la carpeta "vendor" al ignore-list si tengo mi proyecto en "..vendor\siu-toba\framework\proyectos\..." ?

Ya descubrí que al momento de ejecutar la creación del proyecto tengo que usar la opción “-d Directorio_de_Instalacion” para que deje las carpetas propias del proyecto ahí! En una instalación anterior omití el parámetro y el proyecto se instaló en la carpeta que menciono arriba…

Ya está SOLUCIONADO el tema

This. La idea es que los proyectos queden en el primer nivel ahora y toba dentro como una libreria mas.
Saludos

La verdad con esta nueva organización se me complicó un poco entender que es mejor, al igual que al resto por lo que leo en los foros, no me queda aún del todo claro como esquematizar las instalaciones tanto en directorios como en valores de variables como toba_instalacion , toba_instancia, nombre de base de datos, etc. para que al momento de hacer composer update no pisar nada de lo ya desarrollado. Tampoco me queda claro como sería la situación si tengo mas de un proyecto en desarrollo, tendria que duplicar base de datos toba?
Podrías esquematizarlo brevemente como para hacerme una idea? porque por ahi no se si cuando hablan de proyecto hacen referencia a Toba o al Desarrollo.
No se si me explico, no se de que manera llevar a cabo una instalación que al momento de hacer update no rompa los desarrollos (que pueden ser mas de uno en proceso).
Gracias.

Hola Nicolas,

el mayor cambio que se da, es que ahora cada proyecto pasa a ser un paquete autocontenido (lo que venia medio a contrapelo, era lo anterior). Entonces, ahora las instalaciones te quedan autocontenidas adentro de cada proyecto, los valores para las variables no varian demasiado… osea, toba_instancia la podes dejar exactamente como antes, toba_instalacion no se usa, lo que tenes es toba_instalacion_dir que tiene que apuntar a la carpeta de instalacion igual que antes, osea que por ahi tampoco te cambia nada, salvo que en lugar de estar adentro del directorio de toba… ahora te quedaria adentro del directorio del proyecto.

El nombre de la bd, si es un poco molesto porque antes tenias una sola base con varios proyectos… y ahora vas a tener al menos una base por proyecto, de cualquier forma… lo podes solucionar manteniendo una convencion “toba_xx” con xx=nombre_proyecto o xx=nombre_proyecto_version para preveer varias instalaciones de distintas versiones. Otra opcion es que tengas la bd de toba como un schema particular de tu base de negocios, entonces te ahorras un poco eso… pero tenes que tener cuidado de no romper todo al restaurar un backup para hacer pruebas.

Tampoco me queda claro como sería la situación si tengo mas de un proyecto en desarrollo, tendria que duplicar base de datos toba?
Si. Lo mas sencillo es tener una base por proyecto, ya que ademas vas a tener una instalacion por proyecto.
Podrías esquematizarlo brevemente como para hacerme una idea? porque por ahi no se si cuando hablan de proyecto hacen referencia a Toba o al Desarrollo. No se si me explico, no se de que manera llevar a cabo una instalación que al momento de hacer update no rompa los desarrollos (que pueden ser mas de uno en proceso).

No, cuando hablamos de proyecto… hablamos del sistema que haces vos, basicamente es tu entregable digamos. Eso es el proyecto, tu desarrollo.
Que vos tengas varios desarrollos en proceso, no deberia cambiarte nada… vas a tener una instalacion por cada desarrollo en proceso… ese es el cambio respecto de la rama anterior, antes podias tener varios desarrollos en una misma instalacion. Eso ahora se invierte, cada desarrollo tiene su propia instalacion.
Te subo una imagen para graficarte un poco mas que es lo que cambia cuando haces un update ahora.

Cuando marco la carpeta “vendor” como descartable, me refiero a que va a ser eliminado su contenido cuando se haga un update por composer, no a que no es necesaria para la ejecucion.

Saludos


nuevos_dirs.png

nuevos_dirs.png

Excelente, muchas gracias. Nos ponemos en contacto nuevamente si me aparece alguna otra duda en el proceso.
Saludos.

Richard,
Tengo un problema al ejecutar http://localhost/toba_editor/3.0

me aparece lo siguiente:

<?php # apex_proyecto: Proyecto PRIMARIO define("apex_pa_proyecto","toba_editor"); define("apex_pa_validacion_debug", 0); define('apex_pa_metadatos_compilados',1); define('apex_pa_archivos_compilados',0); define('apex_pa_requiere_validacion',1); //-------------------------------------------------------------------------- //------ Invocacion del nucleo del toba ------------------------------------ //-------------------------------------------------------------------------- if (isset($_SERVER['TOBA_DIR'])) { $dir = $_SERVER['TOBA_DIR']."/php"; $separador = (substr(PHP_OS, 0, 3) == 'WIN') ? ";.;" : ":.:"; ini_set("include_path", ini_get("include_path"). $separador . $dir); require_once("nucleo/toba_nucleo.php"); toba_nucleo::instancia()->acceso_web(); } else { die("Es necesario definir la variable 'TOBA_DIR' en el archivo de configuracion de apache (Utilize la directiva 'SetEnv')"); } //-------------------------------------------------------------------------- ?>

tenes idea a que se debe esto?

Hola Javier,

si termino correctamente el comando “composer install”, tendrias que tener el lanzador de comandos tanto en “vendor/siu-toba/framework/bin” como enlazado desde “vendor/bin”, inclusive dependiendo de como tengas configurado el composer.json de tu proyecto puede que te haya enlazado directamente desde la carpeta bin del mismo al bin del framework.

Para esto ultimo deberias tener dentro del archivo json la clausula para especificar el “bin-dir” de tu proyecto.
Todas las opciones serian entonces:


- proyecto_dir/bin
- proyecto_dir/vendor/bin
- proyecto_dir/vendor/siu-toba/framework/bin

Si no esta en ninguno de esos 3 lugares probablemente el comando de composer no se completo exitosamente.

Saludos

Buenas tardes, siguiendo este ticker

Si cada proyecto va tener su propia instalación toba, a partir de un proyecto cero.

  1. Para que se requiere el primer composer install ?
  2. Cada proyecto quedará entonces con su vendor y proyectos adicionales toba_editor, toba_usuarios, toba_referencia, testing,
  3. Cada proyecto al tener su propia instancia (i1,i2,i3…) y su propio toba editor y su propia base de datos, implica entonces que los cambios son en cada toba editor en particular ? y para trabajar con localhost/toba_editor/3.2 a que proyecto se hara referencia ? en el archivo de apache httpd.conf, hay que seguir igual una línea por instalación al final ?
  4. Si tengo 20 proyectos en la version 3.2.2, despues para compoer update sobre cada uno de forma individual ?
  5. el orden final es crear una capeta individual por proyecto, descargar el toba_3.2.2 por composer install, instalarlo y posteriormente con el bin respectivo crear el proyecto? la gráfica que adjunta Richard, es clara pero los proyectos yan no tendrán la carpeta metadatos ? la bin quien la crea ?
  6. cuando se va a utilizar el comando crear, exportar, regenerar, desde que bin se ejecuta por consola ? la de cada proyecto particular ?

La verdad estoy más perdido que bisco en un guadual, pero espero salir de esta, con la ayuda de los que me puedan colaborar

Alguien me puede regalar una foto de como queda el arbol completo desde el primer composer install y la de un proyecto en particular, estaría muy agradecido.
Ejem:
c:\proyectos\composer.json
al ejecutar queda
c:\proyectos\vendor , composer.json y composer.lock …

Cordial Saludo

Jhon,

Para bajar el codigo de toba y del resto de las librerias, necesario para poder completar los pasos de instalacion.

2. Cada proyecto quedará entonces con su vendor y proyectos adicionales toba_editor, toba_usuarios, toba_referencia, testing,,
Si.
3. Cada proyecto al tener su propia instancia (i1,i2,i3...) y su propio toba editor y su propia base de datos, implica entonces que los cambios son en cada toba editor en particular ? y para trabajar con localhost/toba_editor/3.2 a que proyecto se hara referencia ? en el archivo de apache httpd.conf, hay que seguir igual una línea por instalación al final ?
Si y se hace referencia al proyecto que tenes cargado en dicha instancia. En el archivo de configuracion de apache, debes tener una linea por cada toba.conf (o instalacion de toba) que desees tener activa.
4. Si tengo 20 proyectos en la version 3.2.2, despues para compoer update sobre cada uno de forma individual ?
Si.
5. el orden final es crear una capeta individual por proyecto, descargar el toba_3.2.2 por composer install, instalarlo y posteriormente con el bin respectivo crear el proyecto? la gráfica que adjunta Richard, es clara pero los proyectos yan no tendrán la carpeta metadatos ? la bin quien la crea ?
Al crear el proyecto se genera la carpeta metadatos, el template inicial no la posee porque es irrelevante, ya que luego se sobreescribiria.
6. cuando se va a utilizar el comando crear, exportar, regenerar, desde que bin se ejecuta por consola ? la de cada proyecto particular ?
Si, cada proyecto ahora tiene su propio entorno y debes ejecutar los comandos desde la carpeta del proyecto.
La verdad estoy más perdido que bisco en un guadual, pero espero salir de esta, con la ayuda de los que me puedan colaborar
Lo mas importante del cambio es que entiendas que ahora Toba pasa a ser una "libreria" mas dentro del paquete del proyecto, se parece mas a lo que es el software compilado tradicional... donde cada proyecto tiene todo lo que necesita dentro y los proyectos son independientes entre si.

Saludos