2011-09-20 4 views
-1

최근에 set_include_path()를 발견했으며 리턴 된 경로가 내 includes 디렉토리 경로임을 알게되었습니다.PHP/Apache는 기본적으로 includes 폴더를 찾습니까?

PHP가 자동으로 includes 디렉토리를 찾고 include_path를 this로 업데이트합니까?

set_include_path로 설정 한 몇 개의 경로는 클래스 외부에서 설정할 때 클래스 메서드 내에서 사용할 수 없다는 점도 알아 챘습니다.

왜 이런가요?

$include_root = $_SERVER['DOCUMENT_ROOT'] . '/path/to/includes/'; 
$include_paths = get_include_path() . PATH_SEPARATOR . 
       $include_root . PATH_SEPARATOR . 
       $include_root . 'classes/' . PATH_SEPARATOR; 

set_include_path($include_paths); 

미리 알려 주셔서 감사합니다.

+0

당신이 경로를 포함 "클래스의 외부"을 설정하여 의미를 명확히 할 수 ? 클래스 정의와 별도의 파일입니까? 어떤 순서로 초기화됩니까? 또한, 코드의이 부분들 사이에서'set_include_path' (또는'ini_set ('include_path', ...)')를 호출 할 수 있습니까? – IMSoP

답변

1

php.ini 파일에서이 항목 (includes 디렉토리의 "자동"조회)이 설정됩니다.

<?php phpinfo(); ?> 

소수점 브라우저를 test.php이 변수를 찾기 위해 : 포함 test.php라는 테스트 페이지를 만들

include_path .:/usr/share/php:/usr/share/pear 
당신은 또한 사용되는 php.ini의 어떤 파일을 찾을 수 있습니다

:

Loaded Configuration File /etc/php5/apache2/php.ini 

클래스 메서드 질문에 대한 답변이 없습니다.

명령 줄에서가 아닌 브라우저를 통해 실행하는 경우, 당신은 사용하여 INI 파일을 확인할 수 있습니다

php -r "phpinfo();" | less 
+0

phpinfo()를 통해 표시되는 값. C : \ xampp \ php \ PEAR 이것이 왜 반환 된 값이 아닌지 궁금합니다. – hungerstar

+0

흠, 저도 요! 어떤 값 *이 반환됩니까? –

+0

지금 개발 중입니다. C :/xampp/htdocs/sitename/includes/ 내 클래스 메서드 내에서 호출되는 경우. 그 결과는 set_include_path()가 포함 된 경로를 클래스 자체 외부에 설정했는지 여부와 동일합니다. 클래스 생성자 내에서 경로를 설정하면 잘 작동합니다. 왜 그런지 궁금합니다. – hungerstar