CakePHPのコンソールアプリ実行時の「Welcome to Cakephp…」を消す方法

コンソールアプリ実行時の邪魔な表示

CakePHP(1.2)のコンソールアプリ(vendors/shells/***.php)を実行すると、必ず、

Welcome to CakePHP v1.2.4.8284 Console
---------------------------------------------------------------
App : app
Path: /home/akiyan/cakeapp/app
---------------------------------------------------------------

などと表示されますが、この表示は標準出力されているため、コンソールアプリからの標準出力をリダイレクトでファイルに保存しようとしたり、パイプ処理しようとするときに邪魔になります。

Shell::_welcome()をオーバーライドして抑制

この出力処理はShellクラスの_welcomeメソッドで行われているので、コンソールアプリのクラスからオーバーライドすることで抑制することができます。

<?php
class Exampe extends Shell {
  function _welcome() {
  }
}

抑制するのではなく、別の処理や表示を追加したいときは以下のように書くとよいでしょう。

<?php
class Exampe extends Shell {
  function _welcome() {
    parent::_welcomde();
    echo 'another code';
  }
}

コメント / トラックバック

コメントは受け付けていません。