autoload (psr-4)
์ธํ ์ ๋คํ๊ณ ๋์ ํ์ผ์ด ๋ถ๋ฌ์ค์ง ์์์ ์ด๋ค ์ด์ ์ธ์ง ์์๋ดค์ต๋๋ค.
๋ฌธ์ ๋ namespace๋ฅผ ์๋ชป ์ดํด๋ฅผ ํ๊ธฐ ๋๋ฌธ์ธ๋ฐ namespace๋ ์๋ฐ์ฒ๋ผ ์์ํด๋๋ถํฐ ์ ๋๊ฒ ์๋๋ผ ์ ๋ ๋ฃจํธ์ฒ๋ผ ์ ์ด์ค์ผํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์) __DIR__ . โ/src/lib/Util.phpโ;
๋ชจ๋ ํ์ผ๋ค์ ํ๋์ฉ ์ถ๊ฐํ๋ค๋ณด๋ฉด ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๊ณ ์คํ๋ก ์ธํ ์ค์๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
autoload๋ฅผ ํตํด ๋จ ํ์ค๋ง ์ถ๊ฐํ๋ฉด ํธ๋ฆฌํ๊ฒ ์๋ฐ์ฒ๋ผ ํ์ผ์ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
require_once 'vendor/autoload.php';
PSR-4 ์๋ ๋ก๋ฉ ์ค์
๋จผ์ composer.json์ ํธ์งํ์ฌ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋จผ์ ๋ง๋ค์ด ๋ฌ์ผ ํฉ๋๋ค.
"autoload" : {
"psr-4" : {
"App\\" : "app/"
}
}
๋จผ์ composer.json ์๋ ์คํ ๋ก๋์ psr-4 ๋ฅผ ๋จผ์ ๋ง๋ค์ด์ฃผ๊ณ
composer dump-autoload
๋ฅผ ์ ๋ ฅํ๋ฉด
vender/composer/autoload_psr4.php ์ ์๋์ผ๋ก ๋ฃจํธ๊ฐ ์์ฑ์ด ๋ฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก namespace๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํด์ ์๊ธด ์ฌ๊ฑด๊ฐ์ต๋๋ค.
์กฐ๊ธ๋ ์ ๋ฆฌ๋ฅผ ํด๋ณด์๋ฉด namespace๋ ๋ฃจํธ๋ถํฐ ์ ์ด๋ ์๋ฐ์ฒ๋ผ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ฒ์งธ๋ก namespace๋ฅผ ์ ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ __DIR__ . src~ ์ด๋ฐ์์ผ๋ก dir์ ์จ์ค์ผ ํฉ๋๋ค.
๋งค๋ฒ ์ด๋ ๊ฒ ์ ๊ธฐ ํ๋ค๊ธฐ๋๋ฌธ์ autoload๋ฅผ ์ฌ์ฉํ๋๋ฐ autoload๋ ์ค์ ํด๋์ ๋ฃจํธ์ ์ ๊ทผํ๋ฉด ์๋์ผ๋ก ๋ฃจํธ(์ ๋ ๊ฒฝ๋ก)๋ฅผ ๋ํด์ ์ ๊ทผํด์ฃผ๋ ์ญํ ์ธ๊ฒ์ ๋๋ค.
Leave a comment