Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que não usou "global $pdo"?

Bom dia!

Uma dúvida: no método opcoesCafe() , verifiquei que você não precisou incluir no escopo o código: "global $pdo" que inclui a conexão com banco de dados, e mesmo assim o método funcionou corretamente. Qual a razão?

Desde já muito grato.

2 respostas
solução!

Oii, tudo bem?

No construtor da classe ProdutoRepositorio, você pode ver um objeto do tipo PDO é esperado como parâmetro:

public function __construct(PDO $pdo)
{
    $this->pdo = $pdo;
}

Quando um objeto ProdutoRepositorio é criado no arquivo index.php, o objeto PDO ($pdo) é passado para o construtor:

$produtosRepositorio = new ProdutoRepositorio($pdo);

Isso significa que a classe ProdutoRepositorio agora tem uma referência ao objeto PDO que foi passado para ela, e essa referência é armazenada na propriedade $this->pdo.

Portanto, dentro do método opcoesCafe(), usamos $this->pdo para acessar o objeto PDO:

$statement = $this->pdo->query($sql1);

Vale lembrar que o objeto pdo, criamos dentro do arquivo conexao-bd.php, e estamos dando um require nele no arquivo index.php.

Espero ter ajudado e bons estudos!

Maravilha! Obrigado, Vinicius!