2010-02-01 5 views
0

좋아요/myProgram/폴더에 포함 된 코드베이스가 있고/myProgram/lib /,/myProgram/docs/등 다양한 폴더가 있습니다 ...PHP5 CLI가 기본 디렉토리를 공식화하는 가장 좋은 방법은 무엇입니까?

어떻게 PHP로,/myprogram/이전에 폴더를 감지하고 기본 변수를 생성하여 기본 디렉토리/myProgram /에 대한 상대 경로로 작성할 수 있으므로 root, my dir,/path /와 같은 프로그램에 myprogram을 배치 할 수 있습니다. to/myProgram/등등?

* nix 환경에서만 작동 할 필요는 없습니다. 이것은 모두 명령 행 파서 또는 실행 스크립트에서 온 것입니다.

답변

0

여기 내가 어떻게했는지 ... 정확히 내가 원했던 것입니다! 내 프로그램으로 놀아본 후 그것을 알아 냈습니다.

// START Directory Bootstrap 
$location = dirname(__FILE__); 
$rootLoc = strpos($location, "myProgram"); 
if($rootLoc === FALSE) 
    die("WARNING! myProgram Root Directory Not Found!\n"); 
$root = substr($location, 0, $rootLoc); 
$root .= "myProgram"; 
// Change Directory for working includes and requires. 
chdir($root); 

시작 스크립트의 위치를 ​​찾은 다음 기본 디렉토리를 찾습니다. 기본 "myProgram"을 찾을 수없는 경우 스크립트가 잘못된 위치에 배치되어 실패해야한다고 가정합니다. 그렇지 않으면 myProgram까지 모든 항목의 하위 문자열을 만든 다음 끝에 myprogram을 추가합니다. 마지막으로 우리는 포함을 허용하기 위해 디렉토리를 변경하고 다음을 요구합니다. ...

include_once("config/serverSettings.php"); 
require_once("config/mySQLSettings.php"); 

법적 명령. 이것이 내가 찾고 있던 것이며 다른 사람들이 볼 수 있도록 업로드하기로 결정했습니다.

+0

그래서/path/to/myProgram/config /는 "config/mySQLSettings.php"를 사용하여 접근 할 수 있습니다. 내가했던 것처럼 chdir 명령을 사용했다고 가정합니다. – Urda

+0

프로그램을'/ path/to/my_program /'로 옮기면 어떻게 될까요? 그 명명 구조가 더 좋아지기 때문에 어떻게 될까요? –

+0

'$ rootLoc = strpos ($ location, "myProgram");을'$ rootLoc = strpos ($ location, "my_program"); ​​그리고'$. = "myProgram";'을'$ root '로 갱신합니다. . = "my_program";'부트 스트랩 앱에서 기본적으로'myProgram'에 대한 모든 참조를'my_program'으로 업데이트하십시오. – Urda

0

나는과 같이 현재 파일에서 상대 경로를 사용하는 것이 좋습니다 것입니다 : 이것은 주위 하드 변경 될 디렉토리 이름을 코딩받을

include (dirname(__FILE__).'/../includes/something.inc.php'); 

. 이로 인해 모든 시스템에서 작동해야합니다.

또한이 비슷한 수행 할 수 있습니다

// In MyProgram/includes/config.php for instance: 
define("BASE_DIR", realpath(dirname(__FILE__).'/../..'); 

을 그리고 다음을 사용할 수 있습니다 :

include(BASE_DIR.'/includes/class.php'); 

난 강력 디렉토리의 이름을 하드 코딩 포함 모든 솔루션에 대해 권합니다 귀하의 응용 프로그램이 있습니다.

+0

어쨌든 나는 그것을 얻을 수 있습니까? 나는 정말로 includes를 빌드하고 root 디렉토리에서 myProgram을 필요로한다. $ HOME/myProgram/... 설정과 같은 것입니다. – Urda

+0

@Urda : 내 수정 사항을 확인하십시오. –

관련 문제