Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravel 5.3 の新機能
Search
ショウノシオリ
October 29, 2016
0
38
Laravel 5.3 の新機能
今となっては古いですが、、、記録として。
ショウノシオリ
October 29, 2016
Tweet
Share
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
130
開発チームのリーダーとしてどうあるべきか?
sshono1210
2
1k
Nuxt.js のディレクトリ
sshono1210
0
2.7k
Nuxt.js で SSR 対応する
sshono1210
0
2k
array_merge と array_push の違いについて
sshono1210
0
300
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
170
Vue.js の methods と computed
sshono1210
0
78
すぐに使える ES2015 の基本構文3つ
sshono1210
0
41
肌で感じたディレクションとマネジメント
sshono1210
0
32
Featured
See All Featured
Building Your Own Lightsaber
phodgson
97
5.6k
Clear Off the Table
cherdarchuk
82
310k
Gamification - CAS2011
davidbonilla
76
4.5k
GitHub's CSS Performance
jonrohan
1023
450k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
219
21k
Building Flexible Design Systems
yeseniaperezcruz
317
37k
A better future with KSS
kneath
230
16k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Writing Fast Ruby
sferik
619
59k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
What's new in Ruby 2.0
geeforr
335
31k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
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]