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以下の環境にデプロイしてもエラーは出なくなります。