Dale, veo si puedo forkear el branch.
Te comento un poco lo que hice en un proyecto Toba (instalando Toba con composer):
- Ejecute un análisis así como viene en la documentación sobre el directorio php del proyecto:
phpstan analyse -l 4 php
Salida larga, pero en resumen:
------ ----------------------------------------------------------------------------------------------------------------------------
Line transacciones/pant_ficha_transacciones.php
------ ----------------------------------------------------------------------------------------------------------------------------
Class pant_ficha_transacciones was not found while trying to analyse it - autoloading is probably not configured properly.
------ ----------------------------------------------------------------------------------------------------------------------------
------ ----------------------------------------------------------------------------------------------------------------
Line zonas/zona_persona.php
------ ----------------------------------------------------------------------------------------------------------------
Class zona_persona was not found while trying to analyse it - autoloading is probably not configured properly.
------ ----------------------------------------------------------------------------------------------------------------
------ ------------------------------------------------------------------------------------------------------------------
Line zonas/zona_productos.php
------ ------------------------------------------------------------------------------------------------------------------
Class zona_productos was not found while trying to analyse it - autoloading is probably not configured properly.
------ ------------------------------------------------------------------------------------------------------------------
O sea, no esta levantando el autoload (y es correcto porque toba lo maneja aparte de composer)
- Cree un archivo de config
phpstan.neon
para decirle que haga autoload del directorio php:
Archivo phpstan.neon:
parameters:
autoload_directories:
- php
Ejecute:
phpstan analyse -l 4 php
Salida:
Note: Using configuration file /path/al/proyecto/phpstan.neon.
11/204 [▓░░░░░░░░░░░░░░░░░░░░░░░░░░░] 5%
Warning: require_once(consola/consola.php): failed to open stream: No such file or directory in /path/al/proyecto/php/extension_toba/stock_comando.php on line 3
Fatal error: require_once(): Failed opening required 'consola/consola.php' (include_path='/path/al/proyecto/vendor/pear/console_getopt:/path/al/proyecto/vendor/pear/pear-core-minimal/src:/path/al/proyecto/vendor/pear/pear_exception:/path/al/proyecto/vendor/siu-toba/numbers_words:/path/al/proyecto/vendor/siu-toba/structures_graph:/path/al/proyecto/vendor/siu-toba/text_highlighter:/path/al/proyecto/vendor/pear/console_getopt:/path/al/proyecto/vendor/pear/pear-core-minimal/src:/path/al/proyecto/vendor/pear/pear_exception:/path/al/proyecto/vendor/siu-toba/numbers_words:/path/al/proyecto/vendor/siu-toba/structures_graph:/path/al/proyecto/vendor/siu-toba/text_highlighter:.:/usr/share/php') in /path/al/proyecto/php/extension_toba/stock_comando.php on line 3
- Intentando y probando varias cosas, termine con el archivo phpstan.neon de la siguiente manera
parameters:
autoload_directories:
- php
- vendor/siu-toba/framework/php
excludes_analyse:
- vendor/siu-toba/framework/php/convenciones
- vendor/siu-toba/framework/php/modelo/migraciones_instancia
- vendor/siu-toba/framework/php/3ros
Los exclude son necesarios porque detecta clases duplicadas. En este punto, la salida que obtengo al ejecutar el ya mencionado comando es esta:
Note: Using configuration file /path/al/proyecto/phpstan.neon.
PHPStan crashed in the previous run probably because of excessive memory consumption.
It consumed around 34 MB of memory.
To avoid this issue, allow to use more memory with the --memory-limit option.
24/204 [▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░] 11%
Warning: Declaration of ci_abm_lotes::evt__form__baja($datos) should be compatible with stock_ci::evt__form__baja() in /path/al/proyecto/php/lotes/ci_abm_lotes.php on line 294
68/204 [▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░] 33%
Warning: require_once(consola/consola.php): failed to open stream: No such file or directory in /path/al/proyecto/php/extension_toba/stock_comando.php on line 3
Fatal error: require_once(): Failed opening required 'consola/consola.php' (include_path='/path/al/proyecto/vendor/pear/console_getopt:/path/al/proyecto/vendor/pear/pear-core-minimal/src:/path/al/proyecto/vendor/pear/pear_exception:/path/al/proyecto/vendor/siu-toba/numbers_words:/path/al/proyecto/vendor/siu-toba/structures_graph:/path/al/proyecto/vendor/siu-toba/text_highlighter:/path/al/proyecto/vendor/pear/console_getopt:/path/al/proyecto/vendor/pear/pear-core-minimal/src:/path/al/proyecto/vendor/pear/pear_exception:/path/al/proyecto/vendor/siu-toba/numbers_words:/path/al/proyecto/vendor/siu-toba/structures_graph:/path/al/proyecto/vendor/siu-toba/text_highlighter:.:/usr/share/php') in /path/al/proyecto/php/extension_toba/stock_comando.php on line 3
O sea, no termino de entender porque sigue sin poder levantar los archivos. De hecho el path que dice que no existe, esta bien y existe (y no tengo problemas de permisos).
Una cosa que se me ocurre probar (aun no me hice el tiempo) es ver si se puede hacer un autoload de todo toba en composer tal como indican aca1. No es util para toba en si pero por ahi le sirve a phpstan. Tenes idea si eso se puede hacer?