Si si, lo explicaron muy bien y lo entendi, me queda claro que no puedo acceder al controlador salvo a travez de un wrapper (no conocia ese termino) y al ser ese wrapper mysqli entonces debo usar ese (o armar uno propio en C).
Hasta ahi estamos todos deacuerdo, como dise gnzoloyo, al extender una clase heredo metodos publicos y protegidos, no puedo modificarlos pero puedo usarlos, ejemplo tonto:
Código PHP:
Ver original<?php
class mysqli
{
private function conectar_controlador_nativo_mysqlnb($param1, $param2)
{
//...
return $conexion;
}
private function conectar_controlador_nativo_libmysql($param1, $param2)
{
//...
return $conexion;
}
protected function controlador_connect($param1, $param2)
{
if($condicion)
{
$this->conectar_controlador_nativo_mysqlnb($param1, $param2);
} else {
$this->conectar_controlador_nativo_libmysql($param1, $param2);
}
return $conexion;
}
public function connect($param1, $param2)
{
//...
$this->function controlador_connect($param1, $param2);
//...
}
}
class my_mysqli extends mysqli
{
public function mi_conexion($param1, $param2)
{
// Aca podria usar esto sin problemas.
$this->controlador_connect($param1, $param2);
}
}
Lo que no se, (y tampoco encontre en san gugul) es si mysqli tiene metodos/propiedades protegidas y cuales son estas, el objetivo de extenderla es usar esto, pero si no existen no tiene sentido