Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel 5.3 の新機能

C385e96e5ddd25faba59e3e14fc3e019?s=47 ショウノシオリ
October 29, 2016
31

Laravel 5.3 の新機能

今となっては古いですが、、、記録として。

C385e96e5ddd25faba59e3e14fc3e019?s=128

ショウノシオリ

October 29, 2016
Tweet

Transcript

  1. Laravel 5.3 の 新機能 株式会社chatbox ショウノシオリ

  2. 自己紹介 ショウノシオリ ❖ 株式会社 chatbox ❖ エンジニア ❖ プログラミングはじめて 1

    年 ❖ Laravel はじめて 9 ヶ月ぐらい
  3. You can find me at: @username user@mail.me 2016年8月23日

  4. Any questions? You can find me at: @username user@mail.me Laravel

    5.3 がリリースされた
  5. You can find me at: @username user@mail.me 心の声

  6. “ また覚えること増えるやん・・・

  7. You can find me at: @username user@mail.me とはいえ

  8. You can find me at: @username user@mail.me できることは 増えたはず

  9. You can find me at: @username user@mail.me なので

  10. 目玉の「3つの新機能」と Laravel Echo Laravel Scout Laravel Passport

  11. 89,526,124 Whoa! That’s a big number, aren’t you proud? 細かい修正点などについて

  12. You can find me at: @username user@mail.me ざっくり和訳してみた おはなし

  13. 3つの新機能で何ができる?

  14. Laravel Scout Laravel Echo Laravel Scout Laravel Passport 高速な全文検索が可能に

  15. “ - Eloquent で高速な全文検索が可能になった - 自動で検索インデックスを保存 - 標準ドライバーは Algolia だが好きにカスタムすることがで

    きる できること
  16. Algolia ▷ 検索向けの API サービス ◦ https://www.algolia.com/ ◦ データを key,

    value で保存 ◦ データをサービスに登録して利用する。
  17. ▷ 開発者向け無料プランあり ◦ 10,000 レコードまで使用可能 ◦ 有料プランは $49 ~(14日間の無料期間あり) ◦

    レコード数やオペレーション(検索などの動作)回数、 サポートなどによって金額は変わる
  18. 使い方 ◦ Composer 経由で Laravel Scout をインストール ◦ サービスプロバイダーを config/app.php

    で登録 ◦ Scout 用の config ファイルを作成
  19. ▷ Laravel\Scout\Searchable トレイトをEloquent モデル追加 ◦ これで Eloquent モデルが検索ドライバに登録される

  20. ▷ 検索は Search メソッドだけでOK ◦ get() の呼び出しを忘れずに

  21. Laravel Echo Laravel Echo Laravel Scout Laravel Passport イベントブロードキャスティング

  22. “ - Laravel 5.2 からあったイベントブロードキャスト機能の強化 - Socket.io のサポートで、WebSocket サーバの構築が簡単 に!

    - Laravel Echo による WebSocket サーバの構築も できること
  23. Event Broadcasting ▷ Laravel内でイベントを発行する仕組み ▷ Pusher / Redis に加え、 Socket.io

    へもイベント を発行できるようになった! ◦ WebSockets サーバの構築が用意に! ◦ Laravel Echo を利用して簡単に Web Sockets サーバが 構築できる! ◦ https://github.com/tlaverdure/laravel-echo-server
  24. Laravel Echo ▷ ブロードキャストを行う node 製のツール ◦ npm でインストール ◦

    ドライバは pusher と Socket.io をサポート
  25. Laravel Passport Laravel Echo Laravel Scout Laravel Passport OAuth2 サーバーの使用

  26. “ - OAuth2 サーバーの実装が簡単にできるようになった できること

  27. You can find me at: @username user@mail.me 詳しくは この次のセッションで

  28. その他細かい修正点について

  29. Notifications ▷ メール、Slack などのチャンネルに通知する API を簡単に実装できるようになった ◦ make:notification でクラスを作成 ◦

    作成したクラス内で呼び出すチャンネルを指定したり、 内容を記述 ◦ 実行は Notifiable トレイトを持つ User クラスから notify で呼び出すだけ
  30. ▷ チャンネルは随時増えていく模様 ◦ http://laravel-notification-channels.com/ ◦ Laravel Notification Channels に使えるチャンネルと 使い方が記載されている

  31. None
  32. ▷ メールを送るとき用のクラスができた ◦ クロージャで長いコードを書く必要がなくなった ◦ make:mail で Mailable インターフェースをそなえるクラ スを作成

    ◦ 呼び出しはクラスのインスタンスを作成するだけ Mailable Objects
  33. Storing Uploaded Files ▷ アップロードファイルの格納が簡単にできる ようになった ◦ Web アプリケーションでよくあるユーザーのプロ フィール画像とかの保存に使える

    ◦ S3 などに格納することもできる
  34. ▷ アップロードには uploaded file インスタンス のstore メソッドを使う ◦ 5.2 までに比べるとかなりシンプルなコードで済む

    使い方
  35. ▷ ファイル名に名前をつけたいときは storeAs メソッドを使う ◦ store メソッドを使った場合の名前は MD5 ハッシュ になる

  36. ▷ 格納先まわりの設定は filesystem.php で ◦ 格納先の変更とか

  37. ▷ S3を使う場合 ◦ ’disks’ の ‘S3‘ の config に自分のストレージに関す るキーなどを書く(Git

    などにあげないように注 意!)
  38. Webpack & Laravel Elixir ▷ Webpack と Rollup をサポート ◦

    Elixir は Laravel 用の gulp タスク群 ◦ 以前は Sass や CoffeeScript のコンパイルのみだった ◦ デフォルトでは Webpack になっている フロントエンドのハナシ
  39. ▷ 読み込みファイルは resources/assets/js ◦ コンパイル後のファイルは public/js に吐き出される

  40. Frontend Structure ▷ 認証周りのビューに使われているフレーム ワークのバージョン管理が CDN からnode に 移行 ◦

    そのまま使うには問題ないが、手を加えたい場合は Node.js の技術が必要 フロントエンドのハナシ
  41. Routes Files ▷ Web 用と API 用に分かれた ◦ api.php のルートは

    RouteServiceProvider により、自 動的に api プレフィックスが割り当てられる ▷ ミドルウェアの切り分けとかが便利になる
  42. Closure Console Commands ▷ インラインでもコマンドが追加できるように ◦ Routeっぽく routes/console.php に書くだけでOK

  43. ▷ クラス作成コマンドの変更 ◦ make:console から make:command に ◦ 作ったクラスをKernel.phpに登録し忘れないように 注意

  44. The $loop Variable ▷ ループ中で使える変数 $loop が追加された ◦ 「ループの最初だけ」や「現在のループのインデックス」 など細かく制御できるように

  45. サンプル

  46. インデックスをつける( 0スタート) 今のループの数(1スタート) 残りのループ数 現在のループまでのカウント数 最初のループ 最後のループ ループの深さ 親のループを参照

  47. 個人的な感想 ▷ 外部サービスとの連携がより簡単になった 印象 ◦ 作りたい機能の実装に集中的できるようになる ◦ 外部サービスで使えるものは使う、という考え方の おかげでいろんな開発に応用しやすくなりそう ▷

    Laracast が結構役立つ ◦ ドキュメントを読むより分かりやすい ◦ 分かった気になって楽しい ◦ 英語のリスニングの勉強にもなる
  48. Thanks! Any questions? You can find me at: @username user@mail.me