Autoload

<< Click to Display Table of Contents >>

Navigation:  Objetos >

Autoload

Previous pageReturn to chapter overviewNext page

4 classes na estrutura

 

autoload

 

Empresa.php

 

namespace classes\model;
 
class Empresa {
}

 

Pagar.php

 

namespace classes\model;
 
class Pagar {
}

 

Receber.php

 

namespace classes\model;
 
class Receber {    
}

 

Usuario.php

 

namespace classes\model;
 
class Usuario {    
}

 

Modo de uso - sem autoload

 

require __DIR__ . '/classes/model/Usuario.php';
require __DIR__ . '/classes/model/Pagar.php';
require __DIR__ . '/classes/model/Empresa.php';
require __DIR__ . '/classes/model/Receber.php';
 
use classes\model\Usuario;
use classes\model\Pagar;
use classes\model\Empresa;
use classes\model\Receber;
 
$usuario = new Usuario();
$pagar = new Pagar();
$receber = new Receber();
$empresa = new Empresa();

 

Modo com autoload

 

require __DIR__ . '/classes/autoload.php'// apenas 1 require na aplicação
 
$usuario = new classes\model\Usuario();  // dá pra colocar o "use" igual no modelo sem autoload para não precisar do namespace
$pagar = new classes\model\Pagar();
$receber = new classes\model\Empresa();
$empresa = new classes\model\Receber();

 

 

autoload.php (pasta classes)

 

spl_autoload_register(function ($class) {
 
    $prefixo = "classes\\";
    $baseDir = __DIR__ . "/";
    $len = strlen($prefixo);
 
    if (strncmp($prefixo$class$len) !== 0) {
        return;
    }
 
    $classeRelativa = substr($class$len);
    $arq = $baseDir . str_replace("\\""/"$classeRelativa) . ".php";
 
    if (file_exists($arq)) {
        require $arq;
    }
});