Laravel Shiftでバージョンを更新

Laravelのメジャーのバージョンは、以下のように、ほぼ年に2回のペースでリリースされています。

頻繁に更新されることは、Laravelがいつもアクティブである証拠でとても良いのですが、追い付いていくのが大変なのが現状です。

もちろん便利な機能が登場してきたり、今まで複雑だったことが簡単にできるようなったりとかプラスの面が多いのですが、過去には、バージョン間でフレームワークのディレクトリのレイアウトが変わったり、関数名が変わったりと、ほとんど書き直しを強制される結果となることもあります。

さらに、お客さんのプロジェクトとなれば、バージョンの更新ではUIは何も変わらないので、どうコストを正当化するのかも頭が痛いことです。しかし、バージョンアップしないとLaravelのサポートが期限切れとなるし、便利な新しい機能も使えないし。。。

こういうときに、見つけたのが、バージョン更新サービスの、Laravel Shift

早速、このサービスを利用して、私のLaravel5.3の日本語のリポジトリを5.4に更新してみましょう。

残念ながら英語のサービスですが、すでにgithubbitbucketのリポジトリを使用しているならことは簡単です。

  1. ホームページで「Get Started Now」をクリックすると、以下のようなポップアップが登場します。
  2. Gitのレポジトリにログインします。

     
  3. Laravel Shiftがgithubの私のレポジトリにアクセスすることを許可します。
     
     
  4. Wecome画面が表示されます。そこの右上の「New Shift」をクリックして次の画面へ進みます。
     
     
  5. 更新先のバージョンを選択します。ここでは5.3から5.4なので、「Laravel 5.4」にマウスを持っていき、「Purchase」をクリックします。
     
  6. 更新元のレポジトリとブランチ名を入力します。
  7. 支払い画面です。「Purchase Shift」をクリックします。
  8. クレジットカード情報を入れます。
     
  9. カード決済が完了すると、作業が開始されます。プロジェクトのサイズにもよりますが、完了するとステータスのアイコンが変わり終了です。
     

これで、Laravel Shiftのサイトでの作業は終わりです。領収書のEメールも送信されます。

一方、gifthub.comの方では、プルリクエストが作成され、shift-のプレフィックスのブランチが作成されています。

プルリクエストの内容は以下で閲覧できます。

https://github.com/lotsofbytes/larajapan/pull/2

このブランチでは、コミットは6つ存在し、先のプルリクエストでそれらに関して説明が記されています。この説明は十分理解する必要あり。

作成されたブランチがそのまま使用できるのではなく、以下の作業が必要と書かれています。

  • 作成されたブランチをgitでチェックアウトしてください。
  • プルリクエストのすべてのコメントをレビューしてください。追加の変更を行う必要があるかもしれません。
  • Laravel 5.4の更新のために依存部分を更新してください。
  • composer updateを実行してください。失敗するなら–no-scriptsを付けて再度実行してください
  • 徹底的にテストしてください/li>

以上をこなして実行してみると、動作しましたね!

もちろん今回はとてもシンプルなプロジェクトでの更新なので、調整も最低限度と思いますが、大きなプロジェクトではShiftのブランチで簡単にはいかないと思います。しかし、LaravelのサイトでのUpgrade Guideを読んで、現在のプロジェクトを手動で更新、または新バージョンをまっさらでインストールして、そこにプログラムを1つ1つ移行していくなどの作業よりは、Shiftを使うとスタート時点でかなり違うかなと感じです。今回は11ドルとコストも低いし。

私のクライアントのプロジェクトでは、5.2 ⇒ 5.3 ⇒ 5.4 ⇒ 5.5と3回Larvel Shiftの作業が必要となるわけですが、試してみようと思います。

もっとティンカー(tinker)を使おう!

今年最後の投稿です。まだまだ投稿のネタはたくさんあります。来年も楽しみに!

tinkerに関しては、以前に紹介していますが、私には現在もなくてはならないコマンドラインツール。

このツール、実は機能が豊富にあるということ最近気づきました。ますます好きになりました。
続き “もっとティンカー(tinker)を使おう!”

PSR2

PHP5.6からPHP7.0へ移行したところで、クライアントのプロジェクトもLaravel5.2からLaravel5.5へのアップグレードが必要と思う最近。
続き “PSR2”

Route::match

プログラマというのは、その性質上、いかにプログラムの行数を少なくして、やりたいことをクリーンに明確に表現できるかに時間を費やしたりします。そして、重複の表現はすぐに気づき、忌み嫌い、どうしたらそれをなくすことができることを日夜考えます。

私もそのひとりで、例えば、昔以下のようなコードありました、「どうにかならんかな?」と気になっていました。
続き “Route::match”

turbolinksで画面の表示をスピードアップ (1)

Laravelのフレームワークのおかげで、自分で作成した古いフレームワークもどきや、CodeIgniterの「もうサポートしません」(注1)フレームワークを脱出できて、以前よりしっかりした開発の領域に入ってきたと感じているこの頃。そして、ファサード、ネームスペース、クロージャ、トレイトなどを活用して、とてもモダン。しかし、最近人気が出てきたJavascriptのフレームワーク、Angular, React, Vuejsを使用したシングルページアプリ(SPA)がとても気になります。
続き “turbolinksで画面の表示をスピードアップ (1)”

phanは楽しい!(1)

php7に更新したら使ってみたいと思っていたツールがありました。

このphpの静的解析ツールツールの名前は、Phan。ファンと呼びます。多分、楽しいという英語のfunにひっかけて。Githubでは、以下で公開されています。

https://github.com/phan/phan

さて、これがどうして重要なツールかというと、
続き “phanは楽しい!(1)”

Laravelのアップグレードとgitでのバージョン管理

Gitは、開発になくてはならないバージョン管理のツール。Laravelのバージョンをアップグレードがあるときは、フォルダーやファイルが入れ替わるためにGitで新ブランチを作成してから、更新作業を行います。しかし、問題はこの新ブランチは現在のマスターの複製であるため、以前のバージョンのファイルがすでに存在することです。
続き “Laravelのアップグレードとgitでのバージョン管理”

Top