Apagando pastas “.svn” usando SSH

Para apagar todas as pastas .svn de um projeto no servidor, você pode usar o comando abaixo:

find . -name ".svn" -exec rm -rf {} \;

Este mesmo comando pode ser adaptado para apagar arquivos que o MacOSx cria para indexar arquivos no Finder.

find . -name ".DS_Store" -exec rm -rf {} \;
 find . -name "__MACOSX" -exec rm -rf {} \;

Trabalhando com Hooks no Codeigniter

Os Hooks no Codeigniter são uma ótima ferramenta para que você possa modificar o funcionamento do framework sem mexer nos arquivos de core do sistema. Quando o Codeigniter é executado, ele inicia uma série de processos de acordo com o fluxo do aplicativo.

Com os Hooks, é possível criar ações para serem executadas em um estágio específico da aplicação. Um exemplo prático, é caso você queira executar uma ação após o Codeigniter carregar o construtor do controller.

Abaixo listamos todos os processo que podem ser interceptados, e qual o momento que cada é executado:

  • pre_system
    É chamado bem cedo durante a execução do sistema. Somente algumas configurações de benchmark e hooks foram carregadas neste momento. Nenhum processo de rotas ou outros foi executado.
  • pre_controller
    Chamado antes de qualquer controller de sua aplicação. Todas as classes de base, rotas e segurança foram executados neste momento.
  • post_controller_constructor
    Chamado depois do controller ser instanciado. Nenhum método do controller foi executado neste momento.
  • post_controller
    Chamado após o controller ser executado.
  • display_override
    Substitui a função _display() do sistema, usado para enviar a página finalizada para o navegador no final da execução do processo. Isso permite que você use a sua metodologia própria de exibição. Note que você vai precisar fazer referência ao superobjeto CI da seguinte maneira: $this->CI =& get_instance(). E depois os dados finalizados estará disponível chamando $this->CI->output->get_output().
  • cache_override
    Permite que você utilize sua própria função, em vez da _display_cache() na classe de saída. Isso permite que você utilize próprio mecanismo de exibição de cache.
  • post_system
    Chamado depois que a página final é processada e enviado para o navegador, no final da execução do sistema.

Para definir um novo Hook, vamos usar o arquivo application/config/hooks.php.
Através desse arquivo, vamos criar um array com os valores que desejamos executar.
Abaixo há um exemplo de como criar essa configuração:

$hook['post_controller_constructor'] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
 );

Com essa configuração acima, o Codeigniter tentará instanciar a classe MeuHook, no arquivo application/hooks/MeuHook.php, e executar a função minhaFuncaoHook, logo após o construtor do controller ser criado.

Ela pode ser útil para validação de acesso a este controller, por exemplo.

No caso de você desejar executar vários ganchos (Hooks), é só criar essas configurações em um array bidimensional, conforme abaixo:

$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
);
$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook2',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks'
);

Não esqueça de habilitar os hooks no arquivos de application/config/config.php do CodeIgniter.

Escrevendo arquivos JSON com PHP

Para escrever JSON em PHP é muito fácil. Você pode converter facilmente objetos, strings ou arrays em conteúdo JSON.

Veja os exemplos abaixo:

<?php
$std = new stdClass();
$std->nome = 'Dicas de PHP';
$std->url = 'www.dicasdephp.com.br';
$std->data = '2012-06-17';
echo json_encode( $std );
?>

O resultado para o script acima será:

{"nome":"Dicas de PHP","url":"www.dicasdephp.com.br","data":"2012-06-17"}

No caso de um array, o resultado será o mesmo para objeto.

<?php
$array = array(
 'nome' => 'Dicas de PHP',
 'url' => 'www.dicasdephp.com.br',
 'data' => '2012-06-17',
);
echo json_encode( $array );
?>

Resultado:

{"nome":"Dicas de PHP","url":"www.dicasdephp.com.br","data":"2012-06-17"}

Se ficar com dúvidas, deixe um comentário!

Faça o download do WordPress 3.4.1

O WordPress é uma plataforma CMS com semântica de vanguarda. Ideal para publicação de conteúdos no formato de blog, tem o foco na estética, nos Padrões WEB e na usabilidade. O melhor do WordPress é seu uso como software livre e gratuito.
Utilize o WordPress se você quiser facilidade no software de publicação para blogs.

Site Oficial | Download WordPress 3.4.1

Detectando navegador IE com PHP

Para detectar uma requisição feita pela navegador Internet Explorer, você pode utilizar o comando abaixo:

if ( eregi("MSIE", getenv( "HTTP_USER_AGENT" ) ) || eregi("Internet Explorer", getenv("HTTP_USER_AGENT" ) ) ) {
 // Faz algo….
}