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