get_include_path ()는 현재 스크립트의 포함 경로를 얻기 위해 PHP의 내장 함수입니다. 포함 된 경로는 하나 이상의 디렉토리 모음입니다. PHP를 사용하여 파일을로드하기 위해, 요구, 요구 , 요구 사항 및 기타 명령문이 포함되면 경로를 포함하는 순서 대상 파일을 찾습니다.
예를 들어 다음 코드를 실행하십시오.
echo get_include_path();
출력은 비슷할 수 있습니다.
.:/usr/local/lib/php
이는 PHP가 먼저 현재 디렉토리 ( . )에서 파일을 찾은 다음 /usr/local/lib/php 디렉토리에서 파일을 찾을 것임을 나타냅니다.
get_include_path ()를 합리적으로 구성하고 사용하여 개발자는 코드에 특정 디렉토리를 작성하지 않고도 파일로드 경로를 유연하게 관리 할 수 있습니다.
require_once ()는 파일을 소개하는 데 사용되는 PHP의 언어 구조입니다. 요구 사항 () 과 달리 require_once ()는 대상 파일이로드되었는지 확인하고 그렇다면 다시로드되지 않으므로 반복 정의 오류를 피합니다.
예:
require_once 'config.php'; // 이전에로드 된 경우 config.php,여기에는 반복적 인 로딩이 없습니다
프로젝트에서 require_once ()를 많이 사용하여 각 파일이 한 번만로드되고 함수 또는 클래스가 반복적으로 정의되지 않도록하고 코드의 안전한 실행을 보장 할 수 있습니다.
이 둘을 결합하면보다 유연하고 효율적인 파일로드 코드를 작성할 수 있습니다. 예를 들어:
// 현재 포함 된 경로를 얻으십시오
$includePath = get_include_path();
// 라이브러리 파일을로드해야한다고 가정하십시오 lib.php,그리고 파일은 포함 된 경로의 디렉토리에 있습니다.
require_once 'lib.php';
여기서 PHP는 lib.php를 찾고 포함 된 경로의 순서에 따라로드합니다. 요구 사항을 사용하여 여러 통화가 호출 되더라도 중복로드가로드되지 않도록하십시오.
실제 프로젝트에서는 set_include_path ()를 통해 디렉토리를 동적으로 추가 할 수 있습니다.
// 경로를 포함하도록 디렉토리를 추가하십시오
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/libs');
// 이렇게하면 간단한 통화만으로 라이브러리 파일을 가져올 수 있습니다.
require_once 'utils.php';
여기서는 포함 된 경로에 사용자 정의 디렉토리 /var/www/gitbox.net/libs 를 추가 한 후 상대 파일 이름 만 작성하여 코드를 단순화하며 하드 코딩 된 경로를 피하면됩니다.
<?php
// 설정 포함 경로,사용자 정의 디렉토리가 포함되어 있습니다
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/gitbox.net/includes');
// 코어 구성 파일로드
require_once 'config.php';
// 데이터베이스 연결 클래스로드
require_once 'db/Database.php';
// 도구 기능 라이브러리로드
require_once 'utils.php';
// 로드 된 클래스 및 기능 사용
$db = new Database();
$db->connect();
someUtilityFunction();
?>
위의 코드에서는 config.php , database.php 및 utils.php 파일 수에 관계없이 한 번만로드됩니다. 포함 된 경로를 합리적으로 설정함으로써 코드는 더 간단하고 관리가 더 효율적입니다.
require_once ()를 사용하려면 우선 순위가 필요합니다 . 키 파일이 반복적으로로드되지 않도록하십시오.
포함 된 경로를 합리적으로 설정하십시오 . 코드에 절대 경로를 쓰지 않고 코드 이식성을 향상시킵니다.
너무 많은 레벨과 너무 긴 경로를 피하십시오 . 너무 많은 경로는 검색 오버 헤드를 증가시키고 성능에 영향을 미칩니다.
get_included_files ()는 디버깅에 사용할 수 있습니다 . 중복로드 문제를 해결하기 위해 현재 스크립트에서로드 된 파일 목록을보십시오.
get_include_path () 와 require_once ()를 결합하면 파일로드를 효과적으로 제어하고 중복로드로 인한 문제를 피하고 코드의 구성 및 실행 효율성을 향상시킬 수 있습니다.