PHPのComposerでTwigをインストールして開発していた時のこと。
ある環境では問題なく動くのに、別の環境では以下のエラーが発生する現象が起きた。
syntax error, unexpected ‘const’ (T_CONST), expecting variable (T_VARIABLE)
今回はこの問題が起きた原因と、解決法について紹介する。
エラーの原因
これはPHPのバージョンの問題で、エラーが起きた環境のPHPバージョンが5.6と古かったことが原因だった。
composer.jsonに記述されたTwigのバージョンが3系だったのだが、実は2系からPHP7対応となり、PHP5系では動作しなくなっていたのだ。
1 2 3 4 5 | { "require" : { "twig/twig" : "^3.3" } } |
問題の解決法
PHPのバージョンが5系の場合は、composer.jsonの記述を変える必要がある。
01 02 03 04 05 06 07 08 09 10 | { "config" : { "platform" : { "php" : "5.6" } }, "require" : { "twig/twig" : "1.*" } } |
Twigのバージョン指定を「1.*」とすることで、PHP5系で使えるTwig1系の最新バージョンをインストールすることができる。
また、configに実行環境のPHPバージョンを指定することで、今後Composerでインストールするライブラリのバージョンを環境に合わせて入れてくれる。
こちらも合わせて追記しておくことをおすすめする。