● Log error: "array_keys(): Argument #1 ($array) must be of type array, int given":**
• Path donde ocurre el error: /vendor/siu-toba/framework/php/nucleo/componentes/toba_componente.php
• Variable que da el error: $definicion
• Causado por: devolver un INT
• Corrección: asignarlo como array y agregar validación de tipo de datos en el construct
• Método corregido:
function __construct( $definicion = array() )
{
//--- Compatibilidad con el metodo anterior de mantener cosas en sesion
$this->definir_propiedades_sesion();
// Compatibilidad hacia atras en el ID
$this->_id[0] = $definicion['_info']['proyecto'];
$this->_id[1] = $definicion['_info']['objeto'];
if(is_array($definicion))
//Cargo las variables internas que forman la definicion
foreach (array_keys($definicion) as $parte) {
$this->_definicion_partes[] = $parte;
$this->$parte = $definicion[$parte];
}
$this->_solicitud = toba::solicitud();
$this->_log = toba::logger();
//Recibi datos por el CANAL?
$this->_canal = apex_hilo_qs_canal_obj . $this->_id[1];
$this->_canal_recibidos = toba::memoria()->get_parametro($this->_canal);
$this->_id_sesg = "obj" . $this->_id[1];
$this->_id_sesgrec = "obj" . $this->_id[1] . "_rec";
if (! self::$_modo_memoria_compatible) {
$this->_id_ses_g .= $definicion['_const_instancia_numero'];
$this->_id_ses_grec .= $definicion['_const_instancia_numero'];
}
$this->set_controlador($this); //Hasta que nadie lo explicite, yo me controlo solo
//Manejo transparente de memoria
$this->cargar_memoria(); //RECUPERO Memoria sincronizada
$this->cargar_info_dependencias();
//$this->_log->debug("CONSTRUCCION: {$this->_info['clase']}({$this->_id[1]}): {$this->get_nombre()}", 'toba');
}
● Mismo log error en el path: /vendor/siu-toba/framework/php/nucleo/componentes/persistencia/toba_datos_tabla.php
• Variable que da el error: protected $_info_columnas
• Causado por: devolver un INT
• Corrección: asignarlo como array: protected $_info_columnas = array();
● Log error: non-static method toba_modelo_catalogo::get_instalacion() cannot be called statically
• Causado en: todos los llamados al método get_instalacion()
• Path del error: /vendor/siu-toba/framework/php/modelo/toba_modelo_catalogo.php
• Corrección: agregar public static y retirar los $this
• Método corregido:
public static function get_instalacion( $manejador_interface = null )
{
if (! isset($manejador_interface)) {
$manejador_interface = new toba_mock_proceso_gui();
}
if ( ! isset( $instalacion ) ) {
$instalacion = new toba_modelo_instalacion();
}
$instalacion->set_manejador_interface( $manejador_interface );
if (isset($db)) {
$instalacion->set_conexion_externa($db);
}
return $instalacion;
}
● Log error: "array_keys(): Argument #1 ($array) must be of type array, int given":** • Path donde ocurre el error: /vendor/siu-toba/framework/php/nucleo/componentes/toba_componente.php • Variable que da el error: $definicion • Causado por: devolver un INT • Corrección: asignarlo como array y agregar validación de tipo de datos en el construct • Método corregido: function __construct( $definicion = array() ) { //--- Compatibilidad con el metodo anterior de mantener cosas en sesion $this->definir_propiedades_sesion(); // Compatibilidad hacia atras en el ID $this->_id[0] = $definicion['_info']['proyecto']; $this->_id[1] = $definicion['_info']['objeto']; if(is_array($definicion)) //Cargo las variables internas que forman la definicion foreach (array_keys($definicion) as $parte) { $this->_definicion_partes[] = $parte; $this->$parte = $definicion[$parte]; } $this->_solicitud = toba::solicitud(); $this->_log = toba::logger(); //Recibi datos por el CANAL? $this->_canal = apex_hilo_qs_canal_obj . $this->_id[1]; $this->_canal_recibidos = toba::memoria()->get_parametro($this->_canal); $this->_id_sesg = "obj" . $this->_id[1]; $this->_id_sesgrec = "obj" . $this->_id[1] . "_rec"; if (! self::$_modo_memoria_compatible) { $this->_id_ses_g .= $definicion['_const_instancia_numero']; $this->_id_ses_grec .= $definicion['_const_instancia_numero']; }
$this->set_controlador($this); //Hasta que nadie lo explicite, yo me controlo solo //Manejo transparente de memoria $this->cargar_memoria(); //RECUPERO Memoria sincronizada $this->cargar_info_dependencias(); //$this->_log->debug("CONSTRUCCION: {$this->_info['clase']}({$this->_id[1]}): {$this->get_nombre()}", 'toba'); }
● Mismo log error en el path: /vendor/siu-toba/framework/php/nucleo/componentes/persistencia/toba_datos_tabla.php • Variable que da el error: protected $_info_columnas • Causado por: devolver un INT • Corrección: asignarlo como array: protected $_info_columnas = array();
● Log error: non-static method toba_modelo_catalogo::get_instalacion() cannot be called statically • Causado en: todos los llamados al método get_instalacion() • Path del error: /vendor/siu-toba/framework/php/modelo/toba_modelo_catalogo.php • Corrección: agregar public static y retirar los $this • Método corregido: public static function get_instalacion( $manejador_interface = null ) { if (! isset($manejador_interface)) { $manejador_interface = new toba_mock_proceso_gui(); } if ( ! isset( $instalacion ) ) { $instalacion = new toba_modelo_instalacion(); } $instalacion->set_manejador_interface( $manejador_interface );
if (isset($db)) { $instalacion->set_conexion_externa($db); } return $instalacion; }