モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

CakePHP2.7以降はPHP5.2では動かない

今さらながらPHP5.2の環境で動くシステムを作らなければならなくて、でもまあCakePHP2系はPHP5.2対応だから大丈夫だよね、と思って作ってたのです。


が… 本番環境で動かしてみたら下記のようなエラーが出てはまりました。

PHP Parse error: syntax error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or …


実はCakePHP2.7以降だとPHP5.3以降対応になっているとのこと。

2.7 移行ガイド — CakePHP Cookbook 2.x ドキュメント
http://book.cakephp.org/2.0/ja/appendices/2-7-migration-guide.html

CakePHP 2.7 で必要な PHP バージョンは、 PHP 5.3.0 に引き上げられました。


CakePHP3系はPHP5.2では動かないことを確認していたのでCakePHP2系を選択したのですが、2.6と2.7でPHPの対応バージョンに違いが出てきてしまうのでした。

インストール — CakePHP Cookbook 3.x ドキュメント
http://book.cakephp.org/3.0/ja/installation.html

システム要件

PHP 5.5.9 以上


また、DebugKitでもエラーが出たのでこれも調べてみると2013年7月時点ですらPHP5.3以降となっているそうでした。

PHP5.3以上のときだけDebugKitを読み込む - mikage014の日記
http://d.hatena.ne.jp/mikage014/20130704/1372895705

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

となっています。


ちなみにcomposerも対応バージョンは

Introduction - Composer
https://getcomposer.org/doc/00-intro.md

Composer requires PHP 5.3.2+

となっており使えません。
…のに使ってしまっていました。こっちはちゃんと確認すりゃわかることだったのに…


ということで自分のチェックミスが問題でした。
もう2016年時点で今さらPHP5.2環境で新規開発する案件なんてなかなかなかろうとは思いますが、つい普通の環境での開発と同じ感覚で環境構築してしまうとはまるということで。