PHP5.3以上のときだけDebugKitを読み込む

DebugKitのmasterブランチは2013年7月時点で

となっています。

PHP5.2系で動かすとこんなエラーが出ます。

Parse error: syntax error, unexpected T_FUNCTION in APP/plugins/DebugKit/Controller/Component/ToolbarComponent.php on line 174

ToolbarComponent.php でPHP5.3以降で追加された無名関数が使われているのでPHP5.2以下ではエラーになります。

<?php
    ...
    public function implementedEvents() {
        $before = function ($name) {
            return function () use ($name) {
                DebugTimer::start($name, __d('debug_kit', $name));
            };
        };
        $after = function ($name) {
            return function () use ($name) {
                DebugTimer::stop($name);
            };
        };

そこでPHP5.3以上のときだけDebugKitを読み込むようにしてみました。

<?php
class AppController extends Controller {
    public $components = array('DebugKit.Toolbar');
    ...

としていたのを

<?php
class AppController extends Controller {
    public $components = array();
    
    public function __construct($request = null, $response = null) {
        parent::__construct($request, $response);
        
        if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
            $this->components['DebugKit.Toolbar'] = array();
        }
    }

これでPHP5.2以下の環境にデプロイしてもエラーは出なくなります。