Boa noite.
No curso "PHP: Avançando com Orientação a objetos parte 2" é ensinado como utilizar o autoload com um código...sendo que para chamar nossas classes devemos utilizar o comando "USE" no início.
<?php
function load($namespace){
$namespace = str_replace("\\","/",$namespace);
$caminhoAbsoluto = __DIR__ . "/". $namespace . ".php";
return include_once $caminhoAbsoluto;
}
spl_autoload_register(__NAMESPACE__ . "\load");
?>
Porém, no curso "PHP: Manipulando coleções com Arrays" é ensinado OUTRO código para autoload...onde para chamar nossas classes não se faz necessário utilizar nada além é claro do único require que é do próprio autoload.php...nem require, nem USE...nada...lembrando que este professor cita as PSRs...sendo assim fica nas entre linhas que o método dele seria o correto e absoluto uma vez que segue os padrões da comunidade. No exemplo dele apenas damos os new "nome_da_classe" e pronto, elas são chamadas automaticamente sem termos que fazer mais nada.
<php
spl_autoload_register(
function (string $namespaceClasse): void {
$caminho = “/src”;
$diretorio_classe = str_replace("\\", DIRECTORY_SEPARATOR, $namespaceClasse);
@include_once getcwd() . $caminho . DIRECTORY_SEPARATOR . "{$diretorio_classe}.php";
}
);
?>
Mais para frente, no curso de Laravel, onde a estrutura do framework já vem com autoload é ensinado que devemos usar o USE para chamar as classes...
Enfim, qual método utilizar? Achei um pouco confuso ter em uma mesma formação cursos ensinando métodos diferentes sem explicar qual devemos seguir.