Laravel4、アップデートとトラブルシューティング

Tags : 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アプリの作成だけを考えるのではなく、運用も考えましょう。バックアップやリカバーを機能として作りこむ必要は、必ずしも必要ありませんが、最低でも手段は見つけておきましょう。