2011-12-19 4 views
1

나는이 주제와 관련된 사이트를 훑어 보았지만 아직도 혼란 스럽다. 나는 내 문제를 해결했다. 그러나 나는 속임수를 쓰고있다. 그리고 그것은 나에게 더 많은 문제를 줄 수있는 문제이다. 여기 set_include_path() 누군가 나를 똑바로 세울 수 있습니까?

가 [폴더 이름] >>이 같은 디렉토리 구조 폴더입니다 : 내가 보여주는거야 그래서 위의

/site root 
[ajax-loads] 
    showorder.php 

[bcls] << For bespoke classes 
    class.order.php 

[cls] << For classes 
    class.main.php 
    class.db.php 
    class.sql.php 
    ... 
    ... 

dashboard.php 
index.php 
config.php 

... 
.. etc etc 

나는 내가 사용하는 클래스가 포함 2 개 폴더가 나에게 내가 어디에 설명하게 그 중 대부분은 class.main.php의 __autoload를 통해 호출됩니다. 내가 겪고있는 문제는 jQuery를 사용하여 div에 새로운 내용을로드 (load)하는 것입니다. 동작이 변경되고 자동로드 경로는 class.main.php가 아닌 ajax로드 파일에 상대적입니다. 현재 나는 다음과 같은 코드를 가지고있어서 내가 속임수를 쓰고 있다고 느낍니다.

//PATHS & AUTOLOAD 
set_include_path("./cls"); 
set_include_path("../cls"); 
set_include_path("./bcls"); 
set_include_path("../bcls"); 
//INVESTIGATE THIS NONESENSE ABOVE! 

function __autoload($class_name) 
{ 
    require_once 'class' . '.' . $class_name . '.' . 'php'; 
} 
이전 내가 임시로 해결했습니다 내 config.php 파일과 같은 문제가 오전 파일의

: 이제

set_include_path("./"); 
set_include_path("../"); 

날이 결정하는 데 내 첫 번째 큰 프로젝트입니다 지적하자 프로 시저 코딩에서 벗어나기 위해 이것은 자동로드를 사용한 나의 첫 경험이다. 복사본 붙여 넣기 코더가 아니라 실제로 이것을 더 잘 이해할 필요가 있습니다. 나는 여기에서 나의 이해에있는 격차를 때렸다. 코드가 수정 될뿐만 아니라 다른 사람들의 예제를 모방 한 후 여전히 이상한 결과를 얻고 있기 때문에 올바른 코드가 무엇을하는지 친절하게 설명 할 수 있습니다.

사랑하고 당신이 정말로 당신이 좋아하는 그것을 사용해야 포함 경로를 수정하려면 키스 앤디

+0

나는 config.php를 호출하고 모든 것이 거기에서 발생하기 때문에 주변을 이동하려고 시도했습니다. 루트에있는 파일에서 일을 초기화하는 것이 더 좋을지도 모른다고 생각했지만 여전히 동일한 문제가 발생합니다. ajax로드는 require_once 명령이 루트에 있고 다른 모든 상황에서 작동하는 config.php 파일에 있더라도 ajax-load 폴더에 상대적인 루트에 상대적인 파일을 찾지 않습니다. –

답변

0

: 비록

define('BASE_PATH', $_SERVER['DOCUMENT_ROOT']); 

// ... 

set_include_path(
    BASE_PATH . '/bcls' . 
    PATH_SEPARATOR . BASE_PATH . '/cls' . 
    PATH_SEPARATOR . get_include_path() . 
    PATH_SEPARATOR . '.' 
); 

, 난 당신이 폴더의 이름을 변경하는 것이 좋습니다 것입니다. 변수, 클래스, 함수, 폴더 등을 줄여 쓰는 것이 좋습니다. 당신은 일종의 PHP 프레임 워크를 사용 해본 적이 있습니까? 그렇게하면 노력에 도움이 될 수 있으며, 바퀴를 다시 발명하는 것을 피할 수 있습니다.

가벼운 무게를 원하면 Kohana 또는 CodeIgniter를 사용해보십시오. 그렇지 않으면 나는 젠드 프레임 워크를 추천한다.

+0

이것은 더 많은 학습입니다 내가 전에 CodeIgniter와 함께 해본 적이 있지만 더 좋은 이해를 위해 (이론적으로) 자체 프레임 작업을 만들 수있는 무대로 가고 싶습니다. –

+0

나는 당신이 그곳에 올린 글이 무엇인지 이해하지 못했고, 메시지와 함께 root 내 설정 파일을 호출하는 데 여전히 문제가있다 : 경고 : require_once (config.php) [function.require-once] : failed 스트림을 열려면 : G : \ www \ MiX \ cls \ class.main.php 14 행의 파일이나 디렉토리가 없습니다. 치명적인 오류 : require_once() [function.require] : 필요한 'config.php'열지 못했습니다 (G : \ www \ MiX \ cls \ class.main에있는 include_path = 'G :/www/G :/www // bcls; G :/www // cls; .; C : \ php5 \ pear; PHP는 라인 14에 –