Laravel4、アップデートとトラブルシューティング
タグ: Laravel4
Laravel4が4.0.8へ上がりました。(larave/framework)
composer update
で更新されます。(もちろん、他のパッケージも条件に合う最新版に更新されるでしょう。そのためのcomposerですからね。)
Laravelを始め、Composer上のパッケージは、更新により機能が最新になりますが、同時に新しい不具合を拾う可能性もあります。もちろん、これはコンピューター開発の歴史で繰り返されていることで、LaravelやComposerに限定した話ではありません。
Composerにより作成される、composer.lockファイルを別名で保存しておくか、gitなどのソース管理システムの対象に入れておきましょう。いざという時に、パッケージ環境をもとに戻せます。(Composerで管理しているパッケージのバージョンダウンのことです。PHP自身のバージョンはComposerで管理していません。ですから戻せません。念の為。)
ちょっと前に試した時は、新しいフォルダーを作成し、そこにcomposer.jsonとcomposer.lockをコピーし、composer install
をかけたら、元の環境に戻りました。ただ、Composerは、使用の変更が未だ激しいため、もう変わっているかも知れません。
さて、アップデート後に調子が悪くなった場合、以下の順番で試してください。(もちろん、仕様変更が無い場合です。プログラムを書き換える必要があるような変更は、マイナーバージョンアップ(半年ごとの予定:4.0->4.1->4.2)で実施されるでしょうから、アナウンスがないアップデートはほとんどバグフィックスです。通常、ソースの変更は必要ないものと考えられます。
まず、composerのオートロード関係を再構築してみましょう。
composer dump-autoload
Laravelのオートロード関係を再構築しましょう。
php artisan dump-autoload
上記コマンドで、自動的に行われると思いますが、念の為、キャッシュ関係も作成しなおしましょう。
php artisan clear-compiled php artisan optimize
まだダメなら、app/storage下の各フォルダーの中身を空にしてみましょう。フォルダーを削除しないでください。フォルダーの中身を削除します。
多分どこかで復旧するでしょう。
この手を書くと、「Laravelのアップデートはこんなに手間がかかるのか」と揚げ足を取る人がいるので、念の為に説明をしておきますが、通常は必要ありません。Composerでupdateかけるだけで、問題なく動作します。(少なくとも今まで作成した、小さなサイトでは、全く問題が起きたことはありません。これは、どの機能を使用するかという問題も含んでいるので、一概に言えません。ただ、それはどの言語、フレーワーク、システムであろうと、同じことが言えます。)
さらに、これもLaravelに限った問題ではありませんが、Webアプリの作成だけを考えるのではなく、運用も考えましょう。バックアップやリカバーを機能として作りこむ必要は、必ずしも必要ありませんが、最低でも手段は見つけておきましょう。