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に入門してみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ken
March 17, 2021
Programming
110
0
Share
Laravelに入門してみた
ken
March 17, 2021
More Decks by ken
See All by ken
リリース済にも関わらず何のドキュメントもなかったシステムの仕様書を書いてみた話
segamiken
0
110
Accessibilityに興味が出てきた話
segamiken
0
110
Other Decks in Programming
See All in Programming
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
800
GoogleCloudとterraform完全に理解した
terisuke
1
150
PHPer、Cloudflare に引っ越す
suguruooki
1
100
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
230
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
600
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
490
実用!Hono RPC2026
yodaka
2
260
Don't Prompt Harder, Structure Better
kitasuke
0
780
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
290
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
170
t *testing.T は どこからやってくるの?
otakakot
1
710
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
380
Speed Design
sergeychernyshev
33
1.6k
Context Engineering - Making Every Token Count
addyosmani
9
840
Art, The Web, and Tiny UX
lynnandtonic
304
21k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
430
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
Amusing Abliteration
ianozsvald
1
160
WCS-LA-2024
lcolladotor
0
550
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
The Invisible Side of Design
smashingmag
303
52k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
140
Transcript
Laravel に入門してみた ken Laravel のライフサイクルについて サービスコンテナについて サービスプロバイダについて ファサードについて ファサードを使用するメリット
Laravel のライフサイクルについて 1. public/index.php が読み込まれる $app = require_once __DIR__.‘/../bootstrap/app.php’; 2.
bootstrap/app.php が読み込まれる $app = new Illuminate\Foundation\Application( $_ENV[‘APP_BASE_PATH’] ?? dirname(__DIR__) ); return $app; 3. Illuminate\Foundation\Application クラスで色々としてる。これが サービスコンテナで、依存関係を解決している
サービスコンテナについて サービスコンテナはクラス間の依存性を管理する為の仕組み。依存 性の注入を行うDI コンテナにあたるもの これを使わないと、様々な箇所で new クラス名 して様々な依存が存 在する状態になる サービスプロバイダ等で使用している
$this->app は Illiminate\Foundation\Application クラスのインスタンスである。 このクラスがサービスコンテナ $this->app->bind('sender', 'MailSender'); このように書くとサー ビスコンテナにbind() メソッドでキー名にクラスを紐付けて登録す ることができる。これらをサービスプロバイダに書く
サービスプロバイダについて サービスプロバイダは、データベース、キュー、バリデーションな ど、フレームワークのさまざまなコンポーネントすべてを初期起動 する責務を持っている 初期起動とはサービスコンテナの結合や、イベントリスナ、フィ ルター、それにルートなどを登録すること register メソッドの中ではサービスコンテナへの登録だけを行 う、つまりサービスコンテナに何かを結合する処理を書く。 boot()
では、そのサービス固有の初期処理を自由に実装できる 大規模アプリケーションの場合、アプリケーションで使用するサ ービスに対して、それぞれがよりきめ細かい初期処理を備えた複 数のサービスプロバイダを作成すると良い
ファサードについて ファサードは以下の様に使用する。Route ファサードを使用する例で す。 Route::get('/', 'WelcomeController@index'); 一見するとRoute クラスのstatic メソッドであるget() を実行しているよ
うに見えるが、実は、Illuminate\Routing\Router のインスタンスの get() が実行されている getFacadeAccessor() メソッドを実装し、ここでサービスコンテナにバ インドしてあるキー名を返している
ファサードを使用するメリット 依存性注入の1 つの方法である サービスコンテナを介してインスタンスにアクセスする為、オブジ ェクトをシングルトンとして登録できる 毎回クラスをnew するのに比べて、メモリー効率、パフォーマンス 効率が上がる サービスコンテナを介してインスタンスにアクセスする為、テスト を記述する時に、モックに入替えることが出来る