PHP 8 ์ฑ๋ฅ ๐๐๐๐๐๐๐๐๐
3826 ๋จ์ด performancephpdiscusswebdev
๋ด ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฆฌํ๋ ์ ๊ณผ ์ฝ๊ฐ์ ์ ๊ท ํํ์์ ๋ค๋ฃจ๋ ๋ช ๊ฐ์ง ํ ์คํธ๊ฐ 30-50% ๋ ๋น ๋ฅด๊ฒ ์คํ๋๊ณ ์์ต๋๋ค ๐ช!
ํ๋ฅญํ์ง๋ง ๊ฒฉ๋ฆฌ๋ ๋จ์ ํ ์คํธ๋ ๊ฒฐ์ฝ ๋ํ์ ์ด์ง ์์ต๋๋ค.
๋ ๋ณต์กํ ์๋ฃจ์ ์ ์ด๋ฏธ ์ฑ๊ณต์ ์ผ๋ก ๋ฒค์น๋งํนํ ์ฌ๋์ด ์์ต๋๊น?
์ PHP ๋ฒ์ ์ ๋ํ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ด ์ถฉ๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ง ๋ ๋ณต์กํ ํ ์คํธ๋ฅผ ์คํํ ์ ์์์ต๋๋ค.
์ด๊ฒ์ ๋ถ์คํธ๋ฅผ ๋ณด๊ณ ์๋ ์ทจ๋ฏธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๋ค์ฟ ์ ฌ / ์์ด์ด ์ง๋
Autowiring ๋๊ตฌ ๋ฐ ์ข ์์ฑ ์ ๊ณต์.
์์ด์ด ์ง๋ ๐ง
PSR-11 ์๋น์ค ์ปจํ
์ด๋์ฉ Autowiring ๋๊ตฌ ๋ฐ ์ข
์์ฑ ๊ณต๊ธ์
์ง๋์ ํ์ผ๋ก ์ฐ๊ฒฐํ์ธ์.
๐ฟ composer require dakujem/wire-genie
๋ญ?
์ด๋ฅ๋ ฅ์call_user_func
? ์! ๊ทธ๋ฆฌ๊ณ ๋.
Wire Genie๋ PSR-11 ์๋น์ค ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์(์ข
์์ฑ)๋ฅผ "๋ง์ ์ฒ๋ผ"์ ๊ณตํฉ๋๋ค.
๋ค์์ ์ํํ ์ ์์ต๋๋ค.
composer require dakujem/wire-genie
... ์ธ์์ ๋ํ ๋์ ์์ค์ ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๐ช
์ฉ๋ฒ
$container = new Any\Psr11\Container([ Thing::class => new Thing() MyService::class => new MyService() ]) $callable = function (MyService $service, Thing $thing){ ... }; class Something { public function __construct(MyService $service, Thing $thing) { ... } } $g = new Dakujem\Wire\Genie($container); // Magic! The dependencies are resolved from the container. $value = $g->invokeโฆ
View on GitHub
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ฌธ์-์ฃผ์ ์ฃผ์ ๊ตฌ๋ฌธ ๋ถ์(๋๋ถ๋ถ์ ์ ๊ท ํํ์ ๊ตฌ๋ฌธ ๋ถ์์ด ํ์ํจ) ๋์ ์์ฑ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํฅํ ๋ฒ์ ์ ์ค๊ณ์ ํจ์ฌ ๋น ๋ฅผ ๊ฒ์ ๋๋ค.
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(PHP 8 ์ฑ๋ฅ ๐๐๐๐๐๐๐๐๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/dakujem/php-8-performance-322lํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค