CodeIgniter: Dicas

Hoje eu vou dar alguams dicas que eu uso em todo projeto envolvendo CI. Primeiro, no “url_helper“, eu fiz a seguinte modificação na função base_url():

[cc lang=”php”]
if ( ! function_exists(‘base_url’))
{
function base_url($link=FALSE)
{
$CI =& get_instance();
$baseUrl = $CI->config->slash_item(‘base_url’);
if ($link===TRUE) $baseUrl .= $CI->config->slash_item(‘index_page’);
return $baseUrl;
}
}
[/cc]

Isso me permite usar a função em links, onde eu não sei se o host final suporta mod_rewrite. Assim, eu posso usar

[cc lang=”php”]

[/cc]

que ele automaticamente coloca o index.php antes dos controllers dependendo do seu config.php, e em caso de imagens e inserts de .js, ou .css, é só usar normalmente, base_url(). Normalmente não mecho com o Core do CodeIgniter, portanto eu salvei uma copia do url_helper modificado na minha pasta helpers dentro da pasta application.

Segundo. Essa é muito simples. Quando eu uso a classe Form Validation, e eu tenho um campo em branco que não é obrigatório, e obviamente eu nao precisaria usar uma função set_rules, o campo não é preenchido. No entanto, se eu usar uma função set_rules sem especificar uma regra,

[cc lang=”php”]
$this->form_validation->set_rules(‘field_name’, ”, ”);
[/cc]

eu consigo deixar o campo em branco no formulário, mas se eu digitar alguma coisa, o campo ainda assim é repopulado.

E por último, quando eu uso a classe de upload, as vezes eu tenho que apagar o arquivo quando eu edito um registro com uma foto, por exemplo. Entao eu preciso do caminho absoluto da raiz da aplicação. Não achei nenhuma constante definida pra este caso, então criei uma. No arquivo index.php, insira esta linha após a ultima declaração de constantes:

[cc lang=”php”]
define(‘FULLPATH’, pathinfo(__FILE__, PATHINFO_DIRNAME));
[/cc]

Agora, eu tenho a constante FULLPATH que guarda o caminho absoluto da minha aplocação. Espero que essas pequenas dicas tenham sido útil para alguem 😉

Did you like this? Share it:

4 Comments

  • Natanael |

    Muito boa dica Vicente, estou começando com CI (só fiz 4 projetos até agora), mas estou gostando muito, o bom de tudo é que tem uma grande comunidade que conhece e usa o CI, fica facil encontrar dicas como essa que ajuda e enriquece esse podereso Frameworks

  • Bernardo |

    Vicente, dica muito boa, poderia criar mais artigos assim.

    Não sou experte em PHP e estou trabalhando com CI. Essa definiçãod e constante resovel meu problema. Agora no Windows ou Linux não tenho problema.

    define(‘FULLPATH’, pathinfo(__FILE__, PATHINFO_DIRNAME));

So, what do you think ?