Otimizando a configuração da URL base da aplicação

Como se sabe, o CodeIgniter possui um arquivo chamado ‘config.php’, localizado em ‘application/config’, que é responsável por armazenar várias informações de configurações. Dentre essas configurações está a configuração da URL base da aplicação.

Essa configuração é importante para que seja mantida a consistência das URLs, e para que você possa trabalhar com URLs objetivas e não relativas, evitando erros de carregamento.

A dica que vou dar vai permitir que você configure a variável $config[“base_url”] de modo a recuperar automaticamente a URL base no browser.

Por exemplo, hoje você tem a URL http://local.meusite.com, que está em desenvolvimento; ao terminar vai subir para produção e esquece de alterar $config[“base_url”] para a URL de produção, isso vai gerar erros para os usuários.

O código abaixo fará com que a URL base seja detectada automaticamente, através do uso da global $_SERVER do PHP, e assim definir $config[“base_url”] de forma dinâmica, sem que você tenha que se preocupar em ficar alterando a cada vez que mudar de ambiente.


$base_url = "http://" . $_SERVER['HTTP_HOST'];
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $base_url;

Na primeira linha recuperamos o nome do host através de $_SERVER[“HTTP_HOST”] e concatenamos com “http://” e passamos o valor para a variável $base_url. Em seguida removemos o nome do arquivo (que nesse caso é o ‘index.php‘) utilizando a função str_replace(), combinada com a função basename(), que retorna o nome do arquivo para ser removido da URL recuperada por $_SERVER[“SCRIPT_NAME”], e concatenamos com o valor passado para $base_url na primeira linha. E pra finalizar passamos $base_url para o array com as variáveis de configuração, $config[“base_url”].

Espero que a dica seja útil pra você.

Até a próxima dica!!!