1
resposta

Parâmetro da função carregaClasse()

Olá, professor!

Fiquei com dúvida nessa parte: "A função sabe que o nome do arquivo é igual ao nome da classe! Por isso, nós adicionamos o require_once("class/".$nomeDaClasse.".php")."

Como que a função que criei sabe que o parâmetro é o nome do meu arquivo, que é o nome da minha classe? Como ele sabe que tem que extrair daí o parâmetro?

Muito obrigada.

P.S.: E o que são "estratégias de fallback"?

1 resposta

Oi Débora, tudo bom?

Muito boa sua dúvida.

O que a função spl_autoload_register faz é injetar o nome da classe que estamos usando, toda vez que damos new nela. Por exemplo:

$produto = new Produto();
// aqui a função spl_autoload_register vai injetar o texto Produto
$funcionario = new Funcionario();
//// aqui a função spl_autoload_register vai injetar o texto Funcionario

Mas, aonde ela vai injetar esse texto? Nas funções que a gente cadastrar, como no exemplo do curso:

function carregaClasse($nomeDaClasse) {
    require_once("class/".$nomeDaClasse.".php");
}

spl_autoload_register("carregaClasse");

Ou seja, no nosso primeiro exemplo, toda vez que damos new, a função "carregaClasse" será invocada com os parametros "Produto" e "Funcionario" respectivamente. Algo como:

carregaClasse("Produto");
carregaClasse("Funcionario");

Quanto a pergunta:

P.S.: E o que são "estratégias de fallback"? Desconheço fallback, seria callback?

Abraço