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
kunihiko kitamura
September 16, 2023
Technology
4
1.9k
実はLaravelで使われている!?Symfonyコンポーネントを紹介!
kunihiko kitamura
September 16, 2023
Tweet
Share
More Decks by kunihiko kitamura
See All by kunihiko kitamura
超簡単!広告・GAデータレポーティングツールを紹介!
kunihikokitamura
1
120
スクールでPHPとLaravelを学んでSymfonyの会社に就職してみた
kunihikokitamura
0
1k
Other Decks in Technology
See All in Technology
ロールが細分化された組織でSREと協働するインフラエンジニアは何をするか? / SRE Lounge #18
kossykinto
0
220
AIは変更差分からユニットテスト_結合テスト_システムテストでテストすべきことが出せるのか?
mineo_matsuya
1
120
テストを実行してSorbetのsigを書こう!
sansantech
PRO
1
120
Rubyの国のPerlMonger
anatofuz
3
740
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
220
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.4k
Instant Apps Eulogy
cyrilmottier
1
120
Amazon GuardDuty での脅威検出:脅威検出の実例から学ぶ
kintotechdev
0
120
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
370
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
34
15k
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
120
AIに頼りすぎない新人育成術
cuebic9bic
3
320
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Documentation Writing (for coders)
carmenintech
73
5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
450
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Scaling GitHub
holman
462
140k
Code Review Best Practice
trishagee
69
19k
Into the Great Unknown - MozCon
thekraken
40
2k
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/