1
resposta

Multiplos diretórios

O projeto esta com todos os arquivos no mesmo diretório. Tem alguma forma prática de fazer o processo de required quando estamos trabalhando com multiplos diretórios?

Por exemplo: . /src/dao/ Dao.php UsuarioDao.php /src/controller/ UsuarioController.php index.php

Obrigado, Cláudio Coelho

1 resposta

Oi Claudio, tudo bom?

Uma possibilidade é realizar verificações para cada diretório:

 if (is_file('src/dao/' . $nome. '.php')) {
        require_once 'src/dao/' . $nome. '.php';
    } else if (is_file('src/controller/' . $nome . '.php')) {
        require_once 'src/controller/' . $nome . '.php';
    }

Existem algumas outras possibilidades para um algoritmo de autoload. Como, por exemplo, trabalhar com namespaces seguindo um padrão. Ou registrar mais de um autoload:

function carregaClasseDao($nome) {
     if (is_file('src/dao/' . $nome. '.php')) {
        require_once 'src/dao/' . $nome. '.php';
    } 

function carregaClasseController($nome){
if (is_file('src/controller/' . $nome . '.php')) {
        require_once 'src/controller/' . $nome . '.php';
    }    
}
// depois precisamos registrar os dois
spl_autoload_register("carregaClasseDao");
spl_autoload_register("carregaClasseController");

Espero ter ajudado. Qualquer dificuldade compartilhe com a gente!

Bons estudos.