Lo que se recomienda es que inyectes las clases de las cuales depende Usuario. Para tu caso la clase mysqli y la que te proporciona la ip, similar a tu segunda opción. Con esa idea y como ejemplo puedes modificar por ejemplo el metodo
registrar_sesion
Código PHP:
Ver originalfunction registrar_sesion($usuario) {
$this->l->consulta("sentencia sql");
...
$ip = ip::get_ip();
}
Por:
Código PHP:
Ver originalfunction registrar_sesion($usuario, $ip) {
$this->l->consulta("sentencia sql");
$this->ip = $ip->get_ip();
}
Cita: El método correcto es parecido al segundo, pero se puede hacer de manera más sencilla sin tener que ir pasando por parametro el link a mysql, busca "patron singleton", es un patrón para poder acceder a la clase mysql sin tener que reinstanciarla en cada clase (o sin tener que pasarlo por parametro)
Se recomienda sustituir el uso del patrón singleton por la inyección de dependencias, ya que el primero mete mas problemas que los que soluciona.