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.7k
実はLaravelで使われている!?Symfonyコンポーネントを紹介!
kunihiko kitamura
September 16, 2023
Tweet
Share
More Decks by kunihiko kitamura
See All by kunihiko kitamura
超簡単!広告・GAデータレポーティングツールを紹介!
kunihikokitamura
1
100
スクールでPHPとLaravelを学んでSymfonyの会社に就職してみた
kunihikokitamura
0
1k
Other Decks in Technology
See All in Technology
Qiita埋め込み用スライド
naoki_0531
0
4.8k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
なぜCodeceptJSを選んだか
goataka
0
160
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.3k
podman_update_2024-12
orimanabu
1
270
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
530
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
450
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
740
5分でわかるDuckDB
chanyou0311
10
3.2k
UI State設計とテスト方針
rmakiyama
2
570
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Navigating Team Friction
lara
183
15k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Scaling GitHub
holman
458
140k
Become a Pro
speakerdeck
PRO
26
5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Automating Front-end Workflow
addyosmani
1366
200k
GraphQLとの向き合い方2022年版
quramy
44
13k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
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/