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でインストールするライブラリのバージョンを環境に合わせて入れてくれる。
こちらも合わせて追記しておくことをおすすめする。