Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
実はLaravelで使われている!?Symfonyコンポーネントを紹介!
Search
kunihiko kitamura
September 16, 2023
Technology
2.8k
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
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
780
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
240
アカウント統制の健康診断
kenichinakamura
1
200
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
410
Teaching Python with three kinds of AI
reuven
0
120
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
3
1.1k
Filter What the LLM Reads: RAG Governance with AgentCore Gateway
yakumo
0
110
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
200
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
380
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
5
1.7k
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
150
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
170
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
720
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Between Models and Reality
mayunak
4
510
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
580
The Cost Of JavaScript in 2023
addyosmani
55
10k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Darren the Foodie - Storyboard
khoart
PRO
4
4k
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/