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
40
Laravel 5.3 の新機能
今となっては古いですが、、、記録として。
ショウノシオリ
October 29, 2016
Tweet
Share
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
170
開発チームのリーダーとしてどうあるべきか?
sshono1210
2
1.1k
Nuxt.js のディレクトリ
sshono1210
0
2.8k
Nuxt.js で SSR 対応する
sshono1210
0
2.2k
array_merge と array_push の違いについて
sshono1210
0
430
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
180
Vue.js の methods と computed
sshono1210
0
87
すぐに使える ES2015 の基本構文3つ
sshono1210
0
60
肌で感じたディレクションとマネジメント
sshono1210
0
45
Featured
See All Featured
BBQ
matthewcrist
85
9.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Cult of Friendly URLs
andyhume
78
6.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Designing for humans not robots
tammielis
250
25k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Site-Speed That Sticks
csswizardry
2
190
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Making Projects Easy
brettharned
116
5.9k
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]