Considere o seguinte código PHP usado para se conectar a um banco de dados no Joomla: $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('*')->from('#__users'); $db->setQuery($query); $results = $db->loadObjectList(); Qual é a funcionalidade do método loadObjectList?
- A)Criar uma conexão com o banco de dados.
Errada, porque a conexão já foi obtida antes com JFactory::getDbo(), então esse método não cria o acesso ao banco.
- B)Executar a query e retornar o primeiro registro.
Errada, porque ele não retorna apenas o primeiro registro, mas sim uma coleção de registros.
- C)Retornar os resultados como um array associativo.
Errada, porque loadObjectList não devolve array associativo; ele devolve uma lista de objetos.
- D)Retornar os resultados como um array de objetos.
Certa, porque o método retorna os resultados da consulta como um array de objetos.
Gabarito: D
No Joomla, o fluxo aqui é bem direto: você monta a consulta, envia para o banco e depois escolhe como quer receber o resultado. O método loadObjectList é justamente o que transforma o retorno da consulta em uma lista de objetos PHP, em que cada linha vira um objeto com atributos correspondentes às colunas do banco. Isso é muito comum no Joomla, que trabalha bastante com a abstração do acesso a dados via JDatabase. Repare na sequência do código: getDbo pega o objeto de banco, getQuery(true) cria uma query limpa, select e from montam a consulta, setQuery envia a instrução para execução, e aí loadObjectList busca os registros. O ponto importante é que ele não cria conexão e não retorna um único registro, mas sim vários resultados organizados como objetos. Então o gabarito D está correto porque a palavra List já entrega a ideia: uma coleção de itens. Cada linha retornada pela consulta vira um objeto dentro de um array. Se a intenção fosse trazer só um registro, o método típico seria outro, como loadObject. E se fosse array associativo, o formato seria diferente, com dados em estruturas de chave e valor. Em prova, pense assim: no Joomla, loadObjectList é o jeito de dizer "me devolva os registros como objetos em lista". É a tradução mais literal e, nesta questão, a mais segura.