Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravel 5.3 の新機能
Search
ショウノシオリ
October 29, 2016
0
46
Laravel 5.3 の新機能
今となっては古いですが、、、記録として。
ショウノシオリ
October 29, 2016
Tweet
Share
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
240
開発チームのリーダーとしてどうあるべきか?
sshono1210
3
1.2k
Nuxt.js のディレクトリ
sshono1210
0
2.9k
Nuxt.js で SSR 対応する
sshono1210
1
2.3k
array_merge と array_push の違いについて
sshono1210
0
540
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
250
Vue.js の methods と computed
sshono1210
0
120
すぐに使える ES2015 の基本構文3つ
sshono1210
0
86
肌で感じたディレクションとマネジメント
sshono1210
0
79
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
57k
Done Done
chrislema
186
16k
KATA
mclloyd
PRO
32
15k
Music & Morning Musume
bryan
46
7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
The Invisible Side of Design
smashingmag
302
51k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Docker and Python
trallard
47
3.7k
Building an army of robots
kneath
306
46k
Statistics for Hackers
jakevdp
799
230k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Being A Developer After 40
akosma
91
590k
Transcript
Laravel 5.3 の 新機能 株式会社chatbox ショウノシオリ
自己紹介 ショウノシオリ ❖ 株式会社 chatbox ❖ エンジニア ❖ プログラミングはじめて 1
年 ❖ Laravel はじめて 9 ヶ月ぐらい
You can find me at: @username
[email protected]
2016年8月23日
Any questions? You can find me at: @username
[email protected]
Laravel
5.3 がリリースされた
You can find me at: @username
[email protected]
心の声
“ また覚えること増えるやん・・・
You can find me at: @username
[email protected]
とはいえ
You can find me at: @username
[email protected]
できることは 増えたはず
You can find me at: @username
[email protected]
なので
目玉の「3つの新機能」と Laravel Echo Laravel Scout Laravel Passport
89,526,124 Whoa! That’s a big number, aren’t you proud? 細かい修正点などについて
You can find me at: @username
[email protected]
ざっくり和訳してみた おはなし
3つの新機能で何ができる?
Laravel Scout Laravel Echo Laravel Scout Laravel Passport 高速な全文検索が可能に
“ - Eloquent で高速な全文検索が可能になった - 自動で検索インデックスを保存 - 標準ドライバーは Algolia だが好きにカスタムすることがで
きる できること
Algolia ▷ 検索向けの API サービス ◦ https://www.algolia.com/ ◦ データを key,
value で保存 ◦ データをサービスに登録して利用する。
▷ 開発者向け無料プランあり ◦ 10,000 レコードまで使用可能 ◦ 有料プランは $49 ~(14日間の無料期間あり) ◦
レコード数やオペレーション(検索などの動作)回数、 サポートなどによって金額は変わる
使い方 ◦ Composer 経由で Laravel Scout をインストール ◦ サービスプロバイダーを config/app.php
で登録 ◦ Scout 用の config ファイルを作成
▷ Laravel\Scout\Searchable トレイトをEloquent モデル追加 ◦ これで Eloquent モデルが検索ドライバに登録される
▷ 検索は Search メソッドだけでOK ◦ get() の呼び出しを忘れずに
Laravel Echo Laravel Echo Laravel Scout Laravel Passport イベントブロードキャスティング
“ - Laravel 5.2 からあったイベントブロードキャスト機能の強化 - Socket.io のサポートで、WebSocket サーバの構築が簡単 に!
- Laravel Echo による WebSocket サーバの構築も できること
Event Broadcasting ▷ Laravel内でイベントを発行する仕組み ▷ Pusher / Redis に加え、 Socket.io
へもイベント を発行できるようになった! ◦ WebSockets サーバの構築が用意に! ◦ Laravel Echo を利用して簡単に Web Sockets サーバが 構築できる! ◦ https://github.com/tlaverdure/laravel-echo-server
Laravel Echo ▷ ブロードキャストを行う node 製のツール ◦ npm でインストール ◦
ドライバは pusher と Socket.io をサポート
Laravel Passport Laravel Echo Laravel Scout Laravel Passport OAuth2 サーバーの使用
“ - OAuth2 サーバーの実装が簡単にできるようになった できること
You can find me at: @username
[email protected]
詳しくは この次のセッションで
その他細かい修正点について
Notifications ▷ メール、Slack などのチャンネルに通知する API を簡単に実装できるようになった ◦ make:notification でクラスを作成 ◦
作成したクラス内で呼び出すチャンネルを指定したり、 内容を記述 ◦ 実行は Notifiable トレイトを持つ User クラスから notify で呼び出すだけ
▷ チャンネルは随時増えていく模様 ◦ http://laravel-notification-channels.com/ ◦ Laravel Notification Channels に使えるチャンネルと 使い方が記載されている
None
▷ メールを送るとき用のクラスができた ◦ クロージャで長いコードを書く必要がなくなった ◦ make:mail で Mailable インターフェースをそなえるクラ スを作成
◦ 呼び出しはクラスのインスタンスを作成するだけ Mailable Objects
Storing Uploaded Files ▷ アップロードファイルの格納が簡単にできる ようになった ◦ Web アプリケーションでよくあるユーザーのプロ フィール画像とかの保存に使える
◦ S3 などに格納することもできる
▷ アップロードには uploaded file インスタンス のstore メソッドを使う ◦ 5.2 までに比べるとかなりシンプルなコードで済む
使い方
▷ ファイル名に名前をつけたいときは storeAs メソッドを使う ◦ store メソッドを使った場合の名前は MD5 ハッシュ になる
▷ 格納先まわりの設定は filesystem.php で ◦ 格納先の変更とか
▷ S3を使う場合 ◦ ’disks’ の ‘S3‘ の config に自分のストレージに関す るキーなどを書く(Git
などにあげないように注 意!)
Webpack & Laravel Elixir ▷ Webpack と Rollup をサポート ◦
Elixir は Laravel 用の gulp タスク群 ◦ 以前は Sass や CoffeeScript のコンパイルのみだった ◦ デフォルトでは Webpack になっている フロントエンドのハナシ
▷ 読み込みファイルは resources/assets/js ◦ コンパイル後のファイルは public/js に吐き出される
Frontend Structure ▷ 認証周りのビューに使われているフレーム ワークのバージョン管理が CDN からnode に 移行 ◦
そのまま使うには問題ないが、手を加えたい場合は Node.js の技術が必要 フロントエンドのハナシ
Routes Files ▷ Web 用と API 用に分かれた ◦ api.php のルートは
RouteServiceProvider により、自 動的に api プレフィックスが割り当てられる ▷ ミドルウェアの切り分けとかが便利になる
Closure Console Commands ▷ インラインでもコマンドが追加できるように ◦ Routeっぽく routes/console.php に書くだけでOK
▷ クラス作成コマンドの変更 ◦ make:console から make:command に ◦ 作ったクラスをKernel.phpに登録し忘れないように 注意
The $loop Variable ▷ ループ中で使える変数 $loop が追加された ◦ 「ループの最初だけ」や「現在のループのインデックス」 など細かく制御できるように
サンプル
インデックスをつける( 0スタート) 今のループの数(1スタート) 残りのループ数 現在のループまでのカウント数 最初のループ 最後のループ ループの深さ 親のループを参照
個人的な感想 ▷ 外部サービスとの連携がより簡単になった 印象 ◦ 作りたい機能の実装に集中的できるようになる ◦ 外部サービスで使えるものは使う、という考え方の おかげでいろんな開発に応用しやすくなりそう ▷
Laracast が結構役立つ ◦ ドキュメントを読むより分かりやすい ◦ 分かった気になって楽しい ◦ 英語のリスニングの勉強にもなる
Thanks! Any questions? You can find me at: @username
[email protected]