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 OficialDownload 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….
}