Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 __DIR__ 매직 상수 활용하는 방법 완벽 정리

PHP의 __DIR__란 무엇인가?

PHP의 __DIR__는 현재 실행 중인 코드가 위치한 디렉터리 경로를 반환하는 매직 상수(magic constant)입니다. PHP 5.3 버전부터 도입되었으며, 기존에 널리 사용되던 dirname(__FILE__)과 동일한 결과를 제공합니다. 특히 포함(include)된 파일 내부에서 다른 파일을 불러올 때 매우 유용하게 활용됩니다.

예시 디렉터리 구조

다음과 같은 프로젝트 구조를 가정해 보겠습니다. 메인 프로젝트 디렉터리에는 index.php 파일이 있고, 그 하위 폴더인 'master' 디렉터리 안에는 worker_1.php와 worker_2.php 두 개의 파일이 존재합니다.

project_directory
├── master
│   ├── worker_1.php
│   └── worker_2.php
└── index.php

상대 경로 포함 시 발생하는 문제

index.php에서 아래 코드를 실행하면 정상적으로 동작합니다.

include "master/worker_1.php";

그러나 worker_1.php 안에서 worker_2.php를 포함하려면 문제가 발생합니다. include 경로는 index.php 파일을 기준으로 하는 상대 경로로 작성해야 하기 때문입니다.

include "master/worker_2.php";

이처럼 상대 경로 방식은 파일 위치가 변경되거나 프로젝트 구조가 복잡해질 경우 오류를 일으키기 쉽습니다.

__DIR__로 문제 해결하기

__DIR__를 사용하면 현재 파일이 실제로 있는 절대 경로를 기준으로 다른 파일을 포함시킬 수 있어 이러한 문제를 깔끔하게 해결할 수 있습니다. worker_1.php에서 아래와 같이 코드를 작성하면 됩니다.

<?php
include __DIR__ . "/worker_2.php";

__DIR__는 해당 파일이 존재하는 디렉터리를 항상 정확히 가리키므로, 스크립트가 어디에서 호출되었는지와 관계없이 안정적으로 동작한다는 장점이 있습니다. 유지보수성과 코드 이식성을 높이고 싶다면 상대 경로 대신 __DIR__를 사용하는 것이 좋습니다.