Endo Tech Blog

Techブログと言う名のただのブログです。

1年前に作成したLaravelのチュートリアル記事をアップデートした

f:id:kikuchi1201:20181206091430p:plain

この記事はLaravel Advent Calendar 2018 の 5日目の記事です。

昨日は @hypermkt さんの記事で 「Laravelでエラーコードを含む独自エラーレスポンスを返す方法」 でした!

qiita.com

はじめに

今回はLaravelでの実装のTips話よりかは、自分が1年前に公開したLaravelのチュートリアル記事の翻訳元である「Laravel Tutorial: Step by Step Guide to Building Your First Laravel Application」に合わせて最新版にアップデートした話をしようと思います。

kikuchi1201.hateblo.jp

このときに作成したチュートリアル記事なのですが、当時はLaravel 5.4系だったので、Laravelが5.5LTSになったタイミングでアップデートすべき所なかなかできず、メンテナンスもしないまま若干放置気味でした。 (すみません...)
ただ、情報が古い状態で理解させてしまうのは申し訳ないと思いこのタイミングで一気にアップデートしようと思ったのがきっかけです。
 

アップデートしたLaravelのチュートリアル記事

現在アップデート作業は終わってすでに記事には反映させてあります。  

本家を翻訳したチュートリアル記事

qiita.com

本家を改良して作ったチュートリアル記事

qiita.com

またチュートリアル記事のアップデートの作業自体もGithubリポジトリで管理して、実際にアプリケーションを開発しながら記事の翻訳とチュートリアル記事を作ってたので、改良版に関しては詰まりそうなポイントに気にかけながら記事を作成しました。

github.com

変更点

大きい所で言うと、今回のアップデートでテストコードが追加されました! 前回の公開時点では翻訳元の記事側でテストコードが記載されてなかったのですが、いつのまにかテストコードが追加されていたのでその内容をチュートリアルに反映させました。  
テストの内容としてはリンクを投稿するフォーム画面があるのですが、「バリデーションが正しく動作しているか?」だったり、「正常にデータベースに保存されているか?」等、初学者でも簡単にLaravelでのテストコードを経験できる内容になっています。

例を出すと以下のような簡単なレスポンスで返ってきたオブジェクトを使ったテストコードでは、assertStatusを使ってステータスコードが正しく意図した値になっているかを確認したり、assertDatabaseHasでデータベース内で保存された値が正しかを確認したり、RefreshDatabaseが使われている理由だったり等、翻訳元のチュートリアルでもしっかりそこは解説を入れてくれています。

class SubmitLinkTest extends TestCase
{
   use RefreshDatabase;

    function guest_can_submit_a_new_link()
    {
        $response = $this->post('/submit',[
           'title' => 'Example Title',
            'url'  => 'http://example.com',
            'description' => 'Example description',
        ]);

        $this->assertDatabaseHas('links',[
           'title' => 'Example Title'
        ]);

        $response
            ->assertStatus(302)
            ->assertHeader('Location',url('/'));

        $this
            ->get('/')
            ->assertSee('Example Title');
    }
}

ただ、翻訳元の記事でも最後の方で

I know this covers a lot of features and can be overwhelming if you are not familiar with the framework.

と述べられているように、Laravelのフレームワークに精通してないと少し難しい部分もあるのは事実だと思います。 その為に、もう少しわかりやすい解説を入れた改良版チュートリアル記事の方にテストコードの解説をわかりやすく説明を加えたので、Laravelをこれから始めたいっという方は、こちらから始めるのをお勧めします!  

まとめ

Laravelのチュートリアル記事を翻訳した際は、自分の学習目的の為にチュートリアル記事を書いたのですが、あれから1年経って自分が書いたチュートリアル記事を読み返すと、メンテナンスができてなかったのもそうなのですが、「これちゃんと理解せずに当時書いていたな...」と言う気づきも多くありました。

なのでアップデート作業自体は、最初から自分で書いたチュートリアル記事通りにアプリケーションが作れるかを確認しながらデバッグしては進めたので復習にもなったり、以前よりもLaravelの知識が蓄えられていたので、初心者が見てもわかるように再度説明を修正したり色々手を加えています!
とは言え、一気にやってしまった部分もあったりして、誤字、脱字は出てくると思うので、もし見かけたらQiitaから編集PRを送って下さい。

将来的に自分が作成したチュートリアル記事は、社内でLaravelのプロジェクトに入る方にいきなり入って貰う前に、まずはチュートリアル記事でLaravelのフレームワークの特性を掴んで貰うドキュメントとしても活用していきたいと思っているので、今後は継続的にアップデートしていく仕組みを作って活用して行こうと考えています。

宣伝

最後に少しだけ宣伝ですが、来年の2019/2/16Laravel JP Conferenceが開催されます!!!

conference2019.laravel.jp

運営スタッフの一人として当日する来場する皆さんが「来てよかった!」と思うようなカンファレンスを開催できるように色々動いてます!
チケット販売これからですが、もしLaravelやPHPに興味がある方は是非お越し下さい~!!

おわり

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応