상대 경로 마스터 링 : __dir__ 및 __file__의 힘
DIR 및 파일은 PHP의 마법 상수로 복잡한 프로젝트의 상대 경로로 인한 파일 포함 오류를 효과적으로 해결할 수 있습니다. 1. 파일은 현재 파일의 전체 경로를 반환하고 __dir__는 해당 디렉토리를 반환합니다. 2. DIR을 사용하여 다른 통화 스크립트로 인한 경로 오류를 피하기 위해 포함 또는 요구 사항을 항상 현재 파일에 비해 실행해야합니다. 3. require_once dir와 같은 파일을 안정적으로 포함시키는 데 사용될 수 있습니다. '/../config.php'; 4. 입력 파일의 Base_dir 상수를 정의하여 프로젝트 경로 관리를 통합합니다. 5. $ config = 요구와 같은 구성 파일을 안전하게로드하십시오. '/config/database.php'; 6. 자동 로더를 등록 할 때 클래스 파일 디렉토리를 정확하게 찾으십시오. 7. Error_Log ( "파일의 오류 :". __file__)와 같은 디버깅 및 로깅에 파일을 사용하십시오. 요약하면,이 두 상수의 합리적인 사용은 응용 프로그램의 이식성, 유지 보수 및 안정성을 향상시킬 수 있습니다.
__DIR__
및 __FILE__
사용하면 PHP에서 작은 세부 사항처럼 보일 수 있지만 특히 파일 포함 및 디렉토리 탐색을 처리 할 때 안정적인 휴대용 응용 프로그램을 구축하기위한 강력한 도구입니다. 핵심은 프로젝트가 성장함에 따라 상대 경로가 어떻게 깨질 수 있는지 이해하고 이러한 마법 상수가 이러한 함정을 피하는 데 어떻게 도움이되는지 이해하는 데 있습니다.
__DIR__
및 __FILE__
란 무엇입니까?
이들은 PHP의 마법 상수 입니다. 사용되는 위치에 따라 변화하는 특정 내장 값입니다.
-
__FILE__
: 파일 이름을 포함하여 현재 PHP 파일의 전체 경로를 반환합니다.- 예 :
/var/www/project/includes/config.php
- 예 :
-
__DIR__
: 현재 파일의 디렉토리를 반환합니다 (본질적으로dirname(__FILE__)
).- 예 :
/var/www/project/includes
- 예 :
컴파일 시간 에 해결되어 빠르고 신뢰할 수 있습니다. ../includes/config.php
와 같은 상대 경로와 달리 스크립트 호출 방식에 관계없이 항상 올바른 위치를 가리 킵니다.
상대 경로가 그들없이 실패하는 이유
다음과 같은 스크립트 구조가 있다고 상상해보십시오.
프로젝트/ ├ 착환. php ├ ── admin/ Dashboard.php └ ─담 포함/ └ 초수
이제 helpers.php
index.php
및 dashboard.php
에 모두 포함되어 있다고 가정하십시오. helpers.php
에서 상대 경로를 사용하는 경우 :
'database.php'포함;
호출 스크립트가 위치한 곳과 비교하여 database.php
helpers.php
. 그래서:
-
index.php
:project/
-
dashboard.php
에서 :project/admin/
이 불일치는 오류를 유발합니다. 수정? __DIR__
사용 :
__dir__ 포함. '/database.php';
이제 항상 includes/
폴더 (예 : 예상되는 곳)를보고 있습니다.
__DIR__
및 __FILE__
의 실제 사용
1. 신뢰할 수있는 파일 포함
현재 파일과 관련하여 파일을 포함 할 때 항상 __DIR__
사용하십시오.
요구_once __dir__. '/../config.php'; 요구_once __dir__. '/vendor/autoload.php';
코드가 휴대용으로 만듭니다. 실행 스택이 아무리 깊어 지더라도 경로는 정확합니다.
2. 애플리케이션 상수 정의
입력 지점에서 __DIR__
사용하여 앱의 기본 경로를 설정하십시오 (예 : index.php
).
정의 ( 'base_dir', __dir__. '/');
그런 다음 앱 전체에서 BASE_DIR
사용하십시오.
base_dir가 필요합니다. '포함/functions.php';
이것은 경로 논리를 중앙 집중화하고 반복을 피합니다 ../
등산.
3. 파일에서 데이터 반환 (예 : 구성 파일)
데이터를 반환하는 구성 파일을 갖는 것이 일반적입니다.
// config/database.php 반품 [ '호스트'=> 'localhost', '이름'=> 'myapp' ];
어디서나 안전하게로드하려면 :
$ config = __DIR__ 요구 사항. '/config/database.php';
다시, __DIR__
올바른 장소에서로드하고 있는지 확인합니다.
4. 자동 로더 등록
PSR-4 또는 사용자 정의 자동 로더를 설정할 때 __DIR__
사용하여 src/
또는 classes/
폴더를 찾습니다.
spl_autoload_register (function ($ class) { $ base_dir = __dir__. '/src/'; $ file = $ base_dir. str_replace ( '\\', '/', $ class). '.php'; if (file_exists ($ file)) { $ 파일이 필요합니다. } });
이렇게하면 AutoLoader가 어디에서 호출하든 계속 작동합니다.
보너스 : 디버깅 및 로깅을위한 __FILE__
__FILE__
어떤 일이 발생했던 곳을 기록하거나 표시해야 할 때 유용합니다.
error_log ( "파일의 오류 :". __file__);
또는 디버깅 도우자 :
Echo "현재 실행 :". __파일__;
또한 플러그인 또는 테마 (WordPress와 같은)에도 현재 플러그인의 경로를 얻을 수 있습니다.
plugin_dir_path (__ file__) // WordPress 예제
기본적으로 __DIR__
및 __FILE__
추측을 제거합니다. 파일 경로를 예측할 수 있고 앱을 더 잘 관리 할 수 있으며 배포를 더 부드럽게 만듭니다. 로컬 포함에 __DIR__
일관되게 사용하기 시작하면“어느 수준에 있는가?”에 대한 걱정을 중단 할 것입니다. 이것이 진짜 힘입니다.
위 내용은 상대 경로 마스터 링 : __dir__ 및 __file__의 힘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

traitisamagicconstantinphpthatalways는 theTraitin의 traitiStrainsTHETINSTHETINSTHITINSTRAITINSTHITINSTERITINSTERITINSOUSITIN.1.ItusteLvedAtCallassclass.2.unlikeclass __

DirisessentialForBuildingRelyplepaUtoloadersbecauseItSprovideastable, AbsolutePatheCurrentFile'Sdirectory, 일관성이 있으므로

DIR 및 파일은 PHP의 Magic 상수이며 복잡한 프로젝트의 상대 경로로 인한 파일 포함 오류를 효과적으로 해결할 수 있습니다. 1. 파일은 현재 파일의 전체 경로를 반환하고 __dir__는 디렉토리를 반환합니다. 2. DIR을 사용하여 포함되거나 요구 사항이 항상 현재 파일에 비해 실행되거나 다른 통화 스크립트로 인한 경로 오류를 피하십시오. 3. require_oncedir. '/../config.php'와 같은 파일을 안정적으로 포함시키는 데 사용될 수 있습니다. 4. 입력 파일의 Base_dir 상수를 정의하여 프로젝트 경로 관리를 통합합니다. 5. $ config = requiredir. '/config/dat와 같은 구성 파일을 안전하게로드하십시오

클래스 __, __ 메소드 __ 및 __namespacearephpmagicconstants thatprovideContextualInformetAprogramming.1.ClassReturnsHiplyQualifiedClassName.2.methodreturnsTheClassandMethodnamewithNamespace.3.namesPacerEturnsPacestring

__DIR__를 사용하면 PHP 응용 프로그램에서 경로 문제를 해결할 수 있습니다. 현재 파일이 위치한 디렉토리에 대한 절대 경로를 제공하여 다른 실행 컨텍스트에서 상대 경로 사이의 불일치를 피할 수 있습니다. 1. dir__는 파일이 포함될 때 정확한 경로를 보장하기 위해 항상 현재 파일의 디렉토리 절대 경로를 반환합니다. 2. 신뢰할 수있는 파일 참조를 실현하기 위해 __dir. '/../config.php'및 기타 방법을 사용하고 통화 방법의 영향을받지 않습니다. 3. 경로 관리의 유지 보수 가능성을 향상시키기 위해 항목 파일에서 App_Root, Config_Path와 같은 상수를 정의합니다. 4. 자동로드 및 모듈 등록에 __dir__를 사용하여 올바른 클래스 및 서비스 경로를 보장합니다. 5. $ _server [ '문서에 대한 의존성을 피하십시오

ContextualMagicConstantsArenameD, 의미 가득한 식별기, thatasuser_login_attemptorPayment_processing.2

themosteffectivedebuggingtrickinc/c issusing-inmacros __file __, __ line __ 및 __function__togetPreciseErrorContext.1 .__ 파일 __providestHecurrentSourcefile'spathasastring.2. __ line__gecurrentLineNumberAsaninteger

PHP 플러그인 아키텍처에서는 __namespace__를 사용하는 것은 현재 네임 스페이스를 동적으로 반환하여 이동 또는 이름을 바꾼 후 코드가 여전히 유효하도록 할 수 있기 때문에 중요합니다. ∎ 동적 클래스 인스턴스화 및 콜백 분석을 지원하므로 네임 스페이스가 변경 될 때 플러그인에 의해 등록 된 이벤트 프로세서가 여전히 정확합니다. ② 자동화 및 클래스 발견을 단순화하고 PSR-4 표준을 결합하여 핵심 시스템은 플러그인에서 부트 스트랩 클래스를 정확하게 찾을 수 있습니다. hind 하드 코딩 문자열을 피하고 코드 유지 보수 성을 개선하며 재구성의 위험을 줄입니다. debugging을 위해 __class__, __method__ 등과 결합 할 수 있습니다. 요약하면, __namespace__는 플러그인 시스템의 휴대 성, 유지 가능성 및 일관성을 향상 시키며 확장 가능한 시스템을 구축 할 수있는 확장 가능한 시스템입니다.
