목차
__DIR____FILE__ 란 무엇입니까?
상대 경로가 그들없이 실패하는 이유
__DIR____FILE__ 의 실제 사용
1. 신뢰할 수있는 파일 포함
2. 애플리케이션 상수 정의
3. 파일에서 데이터 반환 (예 : 구성 파일)
4. 자동 로더 등록
보너스 : 디버깅 및 로깅을위한 __FILE__
백엔드 개발 PHP 튜토리얼 상대 경로 마스터 링 : __dir__ 및 __file__의 힘

상대 경로 마스터 링 : __dir__ 및 __file__의 힘

Jul 30, 2025 am 05:35 AM
PHP Magic Constants

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__의 힘

__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.phpdashboard.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

뜨거운 주제

__trait__의 맥락 마법 : 수업 내에서 어떻게 행동하는지 __trait__의 맥락 마법 : 수업 내에서 어떻게 행동하는지 Jul 29, 2025 am 04:31 AM

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

방탄 자동 장비 구축 : __dir__ 상수로의 깊은 다이빙 방탄 자동 장비 구축 : __dir__ 상수로의 깊은 다이빙 Jul 31, 2025 pm 12:47 PM

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

상대 경로 마스터 링 : __dir__ 및 __file__의 힘 상대 경로 마스터 링 : __dir__ 및 __file__의 힘 Jul 30, 2025 am 05:35 AM

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

__class__, __method__ 및 __namespace__와 동적 메타 프로 그램링 __class__, __method__ 및 __namespace__와 동적 메타 프로 그램링 Aug 01, 2025 am 07:48 AM

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

__DIR__로 복잡한 응용 프로그램에서 경로 모호성 해결 __DIR__로 복잡한 응용 프로그램에서 경로 모호성 해결 Jul 29, 2025 am 03:51 AM

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

상황에 맞는 마법 상수로 오류 로깅 전략을 향상시킵니다 상황에 맞는 마법 상수로 오류 로깅 전략을 향상시킵니다 Aug 01, 2025 am 07:47 AM

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

__line__, __file__ 및 __function __와 함께 PINPOINT-ACCARUTE 디버깅 __line__, __file__ 및 __function __와 함께 PINPOINT-ACCARUTE 디버깅 Jul 29, 2025 am 03:21 AM

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

유연한 플러그인 아키텍처를 위해 __namespace__ 활용 유연한 플러그인 아키텍처를 위해 __namespace__ 활용 Jul 29, 2025 am 04:20 AM

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

See all articles