FuelPHPでSmarty導入するときにハマった所
FuelPHPでSmarty導入しようとしてハマった所の備忘録。
FuelPHP1.7.3のテンプレートエンジンにsmartyを設定 - Qiita
を参考にして導入。
まずインストールされたSmartyのフォルダがfuel/vendor以下になっていたのでAPPPATH/vendor以下にコピー。
次にVagrant上のゲストOSにていくらchmodしてもパーミッションが変わらなかったのでggった結果、ホストOS側でchmodすることでパーミッション変更。
すると初回アクセス時は正常に動作するものの、ファイルに1度でも変更を加えると
Fatal error: Method Parser\View_Smarty::__toString() must not throw an exception in ~~~~
のエラーが出て正常に動作しない。
諸々見た結果、templates_c以下のファイルを削除すると正常に動くことを発見したので、「FuelPHP templates_c」みたいな感じでggった結果次のページを発見。
FuelPHPで Warning: touch(): Utime failed: Permission denied in 〜 smarty_internal_template.php - Qiita
「User apache」の状態のまま弄ってなかったので従ってvagrantに変更した所正常に動作した。
要因が色々ありすぎてエラー出るたびに辛い気持ちになるので賢くデバッグできるようにしたい。