Funciones que llaman a self

Buenas noches. Perdón que me vaya de tema, es una pregunta de php y no de la aplicación. Voy a poner directo de ejemplo el caso que estamos tratando ahora. Necesitamos redefinir la función get_campos_conf() que está en \siu\operaciones\datos_censales_comun\util_form_censo, lo hacemos en pers/mi_univ. El problema es que nunca va a entrar a la funciona de /pres/mi_univ ya que la función que llama a get_campos_conf() lo hace utilizando self::, por lo tanto siempre va a ir a buscar a la que se encuentra en /siu. No encontré algo que me haga evitar redefinir todas las funciones anteriores a la cadena de llamadas. Hay alguna forma? Gracias

Agustín

Hola Agustin,

No queda otra que tocar el CORE del 3W, en el archivo src/siu/operaciones/datos_censales/_comun/util_form_censo.php en lugar de:

self::$campos_conf = self::get_campos_conf();

deberia quedar:

self::$campos_conf = static::get_campos_conf();

Acá te dejo un post que explica el porque (late static bindings): https://www.php.net/manual/es/language.oop5.late-static-bindings.php

Nosotros todo lo nuevo lo hacemos con static:: en lugar de self:: para que se pueda personalizar, pero hay cosas que ya quedaron con self:: desde antes.

Si haces dicho cambio en el CORE, luego va a tomar lo que personalices.

Veremos de hacer un reemplazo masivo en futuras versiones.

saludos y gracias por avisar.
2