Se você usa o console do cake para seus aplicativos, você deve com certeza ter visto aquela mensagem simpática de boas vindas toda vez que você roda um script no shell.
Welcome to CakePHP vX.Y.Z Console --------------------------------- App : xxxxxxxxx Path: \var\www\bla\bla ---------------------------------
Se você está usando o shell para rodar algum cron (como no meu caso), esse header pode custar vários megas de um logfile no fim de um mês.
Vi vários tutoriais na web explicando como editar o arquivo /console/libs/shell.php, porém, como eu gosto de manter as coisas independentes, eu uso uma instalação do Cake com vários sites, eu não gosto de mexer no Core do Cake.
A solução é um simples overwrite de função.
No seu shell, você precisa criar a função startup()
1 2 3 4 5 6 7 8 | <?php class MeuShell extends Shell{ /** * Startup - overwrite da função do shell */ function startup(){} } ?> |
Se você quiser fazer um shell personalizado, você pode usar o mesmo método:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php class MeuShell extends Shell{ /** * Startup - overwrite da função do shell * para personalizar o shell */ function startup(){ $this->out(); $this->out('Shell do Bugz'); $this->out('-------------'); $this->out(); } } ?> |
Finalmente, num offtopic total, se você vai usar o shell para gerar logs, pode ser interessante você gerar uma função para fazer ou output de forma mais organizada.
Eu gerei uma função ‘o’ para esse fim:
1 2 3 4 5 6 7 8 9 10 | <?php class MeuShell extends Shell{ /** * O - personalizar o out para incluir mais dados */ function o($msg,$tipo='ERRO'){ $this->out(date('Ymd H:j:s').' - '.$tipo. ' - '.$msg); } } ?> |
A seguinte função:
1 2 3 4 | $this->o('Sua mensagem de erro','ERRO'); $this->o('Sua mensagem de Info','INFO'); $this->o('Sua mensagem de BUGZ','BUGZ'); ?> |
Ela gera uma saida assim:
20110302 12:32:04 - ERRO - Sua mensagem de erro 20110302 12:32:04 - INFO - Sua mensagem de Info 20110302 12:32:04 - BUGZ - Sua mensagem de BUGZ
Page optimized by WP Minify WordPress Plugin