Em libraries / joomla / database / database.php é definida a classe abstrata JDatabase, que é então implementada para diferentes tipos de banco de dados em libraries / joomla / database / driver /, neste caso mysql ou mysqli ..
No mysqli.php (Joomla! 3.3.6) __construct ($ options) define defaults se nada for especificado em configuration.php, que irá alterá-lo para 'localhost'. Da linha 64:
public function __construct($options)
{
// Get some basic values from the options.
$options['host'] = (isset($options['host'])) ? $options['host'] : 'localhost';
$options['user'] = (isset($options['user'])) ? $options['user'] : 'root';
$options['password'] = (isset($options['password'])) ? $options['password'] : '';
$options['database'] = (isset($options['database'])) ? $options['database'] : '';
$options['select'] = (isset($options['select'])) ? (bool) $options['select'] : true;
$options['port'] = null;
$options['socket'] = null;
// Finalize initialisation.
parent::__construct($options);
}
Em seguida, a função connect (), finalmente, os usa para criar conexão nas linhas 163-165:
$this->connection = @mysqli_connect(
$this->options['host'], $this->options['user'], $this->options['password'],
null, $this->options['port'], $this->options['socket']
);
Se nada mais for dado, mysqli_connect () usa os padrões do php.ini para hostname, port e soquete
mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host")
[, string $username = ini_get("mysqli.default_user")
[, string $passwd = ini_get("mysqli.default_pw")
[, string $dbname = ""
[, int $port = ini_get("mysqli.default_port")
[, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
Agora você conhece a faixa inteira que afeta esses parâmetros de conexão. Editando o mysqli.php você deve ser capaz de impor as configurações que o configuration.php não permite que você mude. No entanto, você deve ser cuidadoso e considerar documentar bem essas modificações, já que
- configuration.php não funciona mais como documentado
- As atualizações do Joomla podem (e eventualmente irão) substituir suas modificações
- Outra coisa pode estar dependendo dessa configuração específica