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.8k
実はLaravelで使われている!?Symfonyコンポーネントを紹介!
kunihiko kitamura
September 16, 2023
Tweet
Share
More Decks by kunihiko kitamura
See All by kunihiko kitamura
超簡単!広告・GAデータレポーティングツールを紹介!
kunihikokitamura
1
110
スクールでPHPとLaravelを学んでSymfonyの会社に就職してみた
kunihikokitamura
0
1k
Other Decks in Technology
See All in Technology
Simplify! 10 ways to reduce complexity in software development
ufried
2
240
Azure & DevSecOps
kkamegawa
2
180
LINE 購物幕後推手
line_developers_tw
PRO
0
430
MCP でモノが動くとおもしろい/It is interesting when things move with MCP
bitkey
2
450
RubyKaigi NOC 近況 2025
sorah
1
740
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
nkzn
2
260
MCPが変えるAIとの協働
knishioka
1
150
Part2 GitHub Copilotってなんだろう
tomokusaba
2
750
3D生成AIのための画像生成
kosukeito
2
620
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
1
240
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
380
250510 StepFunctionのテスト自動化始めました vol.1
east_takumi
1
210
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Six Lessons from altMBA
skipperchong
28
3.8k
A Modern Web Designer's Workflow
chriscoyier
693
190k
GitHub's CSS Performance
jonrohan
1031
460k
Designing Experiences People Love
moore
142
24k
For a Future-Friendly Web
brad_frost
177
9.7k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
Writing Fast Ruby
sferik
628
61k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
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/