Pular para o conteúdo principal

Autoload para funções php

A febre de orientação para objetos em php faz com que tudo acabe em classes, mas ainda não consigo largar de criar uma ou outra função.

Não vejo muita razão para largá-las ainda que classes possam substituí-las com sucesso.

Mas o grande problema de funções é que não existe um autoload para elas, o que é uma grande vantagem no caso de classes.

Por isso acabei fazendo uma eu mesmo, ela está abaixo:

$ar_include = array(
    'funcao1' => 'caminho_arquivo_funcao1',
    'funcao2' => 'caminho_arquivo_funcao2'
);
  
/**
 * Funcao que serve para executar outras funcoes
 * e fazer o include automatico caso nao exista
 * @param $no_funcao
 * @return mixed
 */
function fExe ($no_funcao) {
    global $ar_include;
  
    if (!function_exists($no_funcao)) {
        include_once($ar_include[$no_funcao]);
    }
    $ar_arg = func_get_args();
    array_shift($ar_arg);
    return call_user_func_array($no_funcao, $ar_arg);
}

Agora, ao invés de chamar a função assim:

alfumaFuncao($par1, $par2);

Chama assim:

fExe('alfumaFuncao', $par1, $par2);

Espero que tenha gostado.

Comentários