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で使われている!?Symfonyコンポーネントを紹介!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kunihiko kitamura
September 16, 2023
Technology
2.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
実はLaravelで使われている!?Symfonyコンポーネントを紹介!
kunihiko kitamura
September 16, 2023
More Decks by kunihiko kitamura
See All by kunihiko kitamura
超簡単!広告・GAデータレポーティングツールを紹介!
kunihikokitamura
1
160
スクールでPHPとLaravelを学んでSymfonyの会社に就職してみた
kunihikokitamura
0
1.1k
Other Decks in Technology
See All in Technology
ガバメントクラウドでのランサムウェア対策
techniczna
1
770
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
280
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
110
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
180
20260801_スクフェス大阪
kgnkhkr
1
1.2k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
480
[しろおび夏祭り2026] チャットするAIから、作業するAIへ - 使われ方の変化と、その裏側で起きていること
kk0n
0
1.6k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
0
850
Webアクセシビリティ入門 2026
recruitengineers
PRO
1
280
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Tell your own story through comics
letsgokoyo
1
1k
The Invisible Side of Design
smashingmag
301
52k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Limits of Empathy - UXLibs8
cassininazir
1
590
Code Reviewing Like a Champion
maltzj
528
40k
Thoughts on Productivity
jonyablonski
76
5.3k
Exploring anti-patterns in Rails
aemeredith
3
450
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Transcript
実はLaravelで使われている!? Symfonyコンポーネントを紹介! PHPカンファレンス沖縄2023 株式会社カルテットコミュニケーションズ 北村 邦彦
自己紹介 北 村 邦 彦 ・株式会社カルテットコミュニケーションズ ・前職: 営業職 → 現職:
バックエンドエンジニア (PHP+Symfony) Twitter:@kuni__94 GitHub:@kitamurakunihiko キタムラ クニヒコ
Symfonyに興味を持っていただいて 日本語の記事を一緒に増やしていきたい!! 目的
1. Symfony コンポーネント?
Symfonyコンポーネント HttpClient HttpFoundation VarDumper Mailer ErrorHandler Console Cache Routing EventDispatcher
EventDispatcher Mailer
Symfonyコンポーネント HttpClient HttpFoundation VarDumper Mailer ErrorHandler Console Cache Routing EventDispatcher
EventDispatcher Mailer
Laravelプロジェクトを作成した際に 何個のSymfonyコンポーネントが そのプロジェクトに依存しているでしょうか? 問題
Laravelプロジェクトを作成した際に何個の Symfonyコンポーネントがそのプロジェクトに 依存しているでしょうか? 問題 $ composer create-project laravel/laravel phpcon-okinawa2023 ①26個
②34個 ③59個
①26個 ②34個 ③59個 Laravelプロジェクトを作成した際に何個の Symfonyコンポーネントがそのプロジェクトに 依存しているでしょうか? 問題 $ composer create-project
laravel/laravel phpcon-okinawa2023 ※自分調べ
2. Routing ・ルートの定義と登録 ・URL生成 ・リクエストの処理
class Router implements BindingRegistrar, RegistrarContract { … public function dispatchToRoute(Request
$request) { return $this->runRoute($request, $this->findRoute($request)); } … } Illuminate∖Routing∖Router.php
class Router implements BindingRegistrar, RegistrarContract { … public function dispatchToRoute(Request
$request) { return $this->runRoute($request, $this->findRoute($request)); } … } Illuminate∖Routing∖Router.php
class Router implements BindingRegistrar, RegistrarContract { … public function dispatchToRoute(Request
$request) { return $this->runRoute($request, $this->findRoute($request)); } … } Illuminate∖Routing∖Router.php
複数ファイル内検索 // ⌘ + ⇧(shift) + F 'Symfony∖Component∖Routing'
3. HttpFoundation ・HTTPリクエスト処理 ・HTTPレスポンス処理 ・セッションとクッキー 管理 ・ファイルアップロード
use Symfony∖Component∖HttpFoundation∖Request as SymfonyRequest; class Request extends SymfonyRequest implements Arrayable,
ArrayAccess { use Concerns∖CanBePrecognitive, Concerns∖InteractsWithContentTypes, … ; protected $json; … } Illuminate∖Http∖Request
Symfony∖Component∖HttpFoundation∖Request class_exists(AcceptHeader::class); class Request { public const HEADER_FORWARDED = 0b000001;
// When using RFC 7239 public const HEADER_X_FORWARDED_FOR = 0b000010; ... protected static $trustedProxies = []; protected static $trustedHostPatterns = []; ... }
use Symfony∖Component∖HttpFoundation∖Request as SymfonyRequest; class Request extends SymfonyRequest implements Arrayable,
ArrayAccess { use Concerns∖CanBePrecognitive, Concerns∖InteractsWithContentTypes, … ; protected $json; … } Illuminate∖Http∖Request
4. VarDumper ・デバッグ ・トラブルシューティング
use Symfony∖Component∖VarDumper∖VarDumper; function dump(mixed ...$vars): mixed { ... if (array_key_exists(0,
$vars) && 1 === count($vars)) { VarDumper::dump($vars[0]); $k = 0; } else { foreach ($vars as $k => $v) { VarDumper::dump($v, is_int($k) ? 1 + $k : $k); } } ... return $vars[$k]; } symfony∖var-dumper∖Resources∖functions
class VarDumper { private static $handler; public static function dump(mixed
$var/* , string $label = null */) { $label = 2 <= ¥func_num_args() ? func_get_arg(1) : null; if (null === self::$handler) { self::register(); } return (self::$handler)($var, $label); } } symfony∖var-dumper∖Resources∖functions
HttpClient Console Mime HttpKernel EventDispatcher Process Uid Finder
Laravelの幻のLTS v9
エンジニア・デザイナー大募集しています! フルリモート勤務可能🏠 https://quartetcom.co.jp/recruit/engineer/