set_include_path 는 현재 스크립트 런타임에 대한 포함 경로를 설정하는 PHP 내장 기능입니다. 포함 된 경로는 PHP가 포함 , 요구 , 파펜 등과 같은 함수를 찾기 위해 사용되는 위치 목록입니다. 기본적으로 포함 된 경로는 일반적으로 PHP 자체의 디렉토리 또는 구성 파일에 지정된 경로 만 있습니다.
set_include_path를 사용하면 이러한 경로를 동적으로 추가하고 교체하여 유연한 파일 관리를 달성 할 수 있습니다.
예를 들어 포함 경로에 추가 해야하는 여러 디렉토리가 있다고 가정합니다.
/var/www/project/lib
/var/www/프로젝트/모델
/var/www/project/helpers
다음 방법을 사용하여 동적으로 추가 할 수 있습니다.
<?php
// 현재 포함 된 경로를 먼저 가져옵니다
$currentPath = get_include_path();
// 추가 디렉토리,여러 디렉토리의 경우PATH_SEPARATOR분리
$newPaths = '/var/www/project/lib' . PATH_SEPARATOR .
'/var/www/project/models' . PATH_SEPARATOR .
'/var/www/project/helpers';
// 기존 경로에 새 디렉토리를 추가하십시오
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);
// 확인 결과
echo get_include_path();
?>
이 코드는 먼저 현재 포함 된 경로를 가져온 다음 여러 디렉토리를 운영 체제 (콜론 ":"Linux 및 Semicolon 아래 ";"Windows에서)에 해당하는 경로 분리기와 연결하고 마지막으로 원래 경로로의 새로운 경로를 추가합니다.
때로는 디렉토리 경로가 동적이거나 배열에서 나오면 다음 방법을 사용할 수 있습니다.
<?php
$dirs = [
'/var/www/project/lib',
'/var/www/project/models',
'/var/www/project/helpers',
];
// 현재 포함 된 경로를 얻으십시오
$currentPath = get_include_path();
// 배열을 문자열로 변환합니다,사용PATH_SEPARATOR나뉘다
$newPaths = implode(PATH_SEPARATOR, $dirs);
// 새로운 포함 경로를 설정하십시오,추가 방법
set_include_path($currentPath . PATH_SEPARATOR . $newPaths);
// 결과를 봅니다
echo get_include_path();
?>
이런 식으로 디렉토리 수에 관계없이 유연하게 추가 할 수 있습니다.
프로젝트가 이동하거나 배포 될 때 경로가 잘못되지 않도록 __dir__ 또는 dirname (__ file__)을 기반으로하는 상대 경로를 사용하는 것이 좋습니다.
<?php
$dirs = [
__DIR__ . '/lib',
__DIR__ . '/models',
__DIR__ . '/helpers',
];
set_include_path(get_include_path() . PATH_SEPARATOR . implode(PATH_SEPARATOR, $dirs));
?>
get_include_path ()를 사용하여 현재 경로를 가져 와서 재설정 및 일부 시스템 경로가 손실되지 않도록 추가하십시오.
set_include_path 와 함께 자동로드 메커니즘을 사용하여 클래스 파일로드를 단순화하십시오.
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/lib');
spl_autoload_register(function($class) {
include $class . '.php';
});
?>
일부 스크립트가 포함 된 경로 만 임시로 수정하면 실행 후 복원 후 retore_include_path ()를 호출하여 기본 상태로 돌아갈 수 있습니다.
<?php
// 여러 디렉토리를 동적으로 추가합니다include_path
$directories = [
__DIR__ . '/lib',
__DIR__ . '/models',
__DIR__ . '/helpers',
];
// 현재 포함 된 경로를 얻으십시오
$currentIncludePath = get_include_path();
// 새로운 경로를 병합하십시오
$newIncludePath = $currentIncludePath . PATH_SEPARATOR . implode(PATH_SEPARATOR, $directories);
// 새로운 포함 경로를 설정하십시오
set_include_path($newIncludePath);
// 인쇄를 확인하십시오
echo "현재 포함 된 경로는입니다:\n";
echo get_include_path();
?>
set_include_path는 실행중인 PHP 스크립트의 포함 경로를 설정하는 데 사용됩니다.
Path_Separator를 사용하여 다른 운영 체제와 호환되는 여러 디렉토리에 연결하십시오.
시스템 기본 경로를 덮어 쓰지 않도록 get_include_path를 통해 경로를 동적으로 얻고 추가하십시오.
spl_autoload_register를 결합하면 자동 파일로드를 크게 단순화 할 수 있습니다.
관리 및 프로젝트 마이그레이션을 용이하게하기 위해 상대 경로 및 디렉토리 어레이를 사용하는 것이 좋습니다.
set_include_path를 유연하게 사용하면 PHP 프로젝트 파일로드가 더 명확하고 효율적이며 코드 유지 보수가 향상됩니다.