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

Funcoes de autoload

no curso anterior da formação PHP utilizamos a seguinte funcao para autoload:

<?php
function load($namespace){

    $namespace = str_replace("\\","/",$namespace);
    $caminhoAbsoluto = __DIR__ . "/" . $namespace. ".php";
    echo $caminhoAbsoluto."<br>";
    return include_once $caminhoAbsoluto;

}
spl_autoload_register(__NAMESPACE__. "\load");

?>

Utilizamos tambem o use, porém neste curso de arrays foi feito uma outra solução para o autoload e não foi utilizado a instrução use

2 respostas

Rafael, boa tarde!

Existem várias forma de fazer o autoload! Olha esse abaixo:


require_once __DIR__ . '/config/show-errors.php';

function load($namespace)
{
    $namespace = str_replace("\\", "/", $namespace);
    $caminhoAbsoluto = __DIR__ . "/src/" . $namespace . ".php";

    return require_once $caminhoAbsoluto;
}

spl_autoload_register(__NAMESPACE__ . "\load");

E se você se interessar por mais métodos, ainda existe o método mágico __autoload() vale a pena procurar a respeito:

https://php.net/manual/pt_BR/function.autoload.php

Espero ter ajudado e bons estudos!

solução!

Fala, Rafael!

Existem inúmeras maneiras de como implementar um autoloader, mas na prática, em projetos atuais, você nunca vai precisar implementar um. O Composer já faz isso pra você.

Se quiser estudar uma melhor forma de implementar, dá uma olhada na PSR-4: https://www.php-fig.org/psr/psr-4/

Só adicionando uma informação sobre o que o Felipe falou, a função __autoload foi depreciada, logo, você não deve utilizá-la em hipótese alguma!

Forte abraço e bons estudos.