Laravel3のyield()とPHP5.5の影響について
PHPのフレームワーク(Laravel)を学習しようと思い、Laravel3をローカル(Xampp)環境で
構築したときに、下記のエラーが出たので解決策を備忘録として記録します。
Laravel3をローカルに構築しlocalhostでアクセスできるようにバーチャルホストを設定した後に、
いざページを表示させるとエラーがでた。
Parse error: syntax error, unexpected 'yield' (T_YIELD), expecting '(' in /var/www/html/laravel/helpers.php on line 563
原因としては下記サイトに解決策がありました。
□problem with php 5.5 and laravel 3.2.14
http://forumsarchive.laravel.io/viewtopic.php?pid=37937
原因:
php5.5ではyieldはキーワードとして存在しており、helper.phpではyieldをファンクション関数として存在していたのが原因
解決策としては3つあり、
1.PHPのバージョンを5.4にダウングレードする
2.yield() function をyieldContentなどの別の名前に変更する
3.意見・要望をLaravelの作者へ出し改善してもらい。
なお、Laravel4では上記のような問題はないため、Laravel4を使用するのが一番無難かもしれません。