2013-06-03 3 views
0

나는이 하나에 난처합니다.CodeIgniter 확장 코어 컨트롤러

내 CodeIgniter 응용 프로그램을 WAMP 서버에 로컬로 설치하면 모든 것이 정상입니다. 모든 클래스가 내 컨트롤러를 확장합니다 (MY_Controller)

그러나 응용 프로그램이 Linux 기반의 라이브 환경에있을 때 MY_Controller 클래스가 존재하지 않는다는 오류가 발생합니다.

어플 리케이션/코어 폴더에 대한 경로와 함께 구성 변수를 잊어 버렸습니까?

Google에서 동일한 문제가있는 다른 스레드를 찾았습니다. 대부분 parent::__construct() 대신 parent::Controller();을 사용하는 사람들에게 효과가있는 해결책을 찾았지만 해결되지는 않습니다.

+0

당신이 컨트롤러가 올바르게 올바른 파일 이름, 클래스 이름, 응용 프로그램/핵심에 위치 특정하고 문을 확장? –

+0

예, 올바른 폴더, 올바른 파일 이름 (MY_Controller.php) 및 클래스 이름 (MY_Controller)에 있으며 로컬 WAMP 서버에서 올바르게 작동합니다. Linux 기반 서버의 정확한 동일한 코드 (일부 구성 상수 제외)가이를 반환합니다. 오류. 모든 컨트롤러에 코어 컨트롤러를 포함시켜 일시적으로 문제를 해결했지만 이상적이지 않습니다. – Ryan

+0

그런 다음 잠시 생각해보십시오. * * 작동해야합니다 ... 또한, parent :: Controller(); parent :: __ construct(), afaik의 별칭입니다. 기능에 영향을 미치지 않아야합니다. –

답변

2

파일 이름의 대/소문자가 틀리거나 (예 : My_Controller 대신 My_controller) 온라인 환경이 대소 문자를 구별하며 로컬 환경이 case_insensitive 일 수 있습니다. 나는 그 문제를 많이 겪었습니다.

+0

오, 네가 네가 이걸 찔렀다 고 생각해. WAMP는 Windows 기반입니다. 따라서 어떤 파일 이름을 사용하든 상관하지 않습니다. –

+0

그럴 수도 있습니다. 그러나 표준 컨트롤러에는 소문자 파일 이름과 대문자 클래스 이름이 있습니다 (예 : firstcontroller.php는 FirstController 클래스 임). 그러면 핵심 컨트롤러에만 왜 영향을 미칩니 까? – Ryan

+0

아니요, 위의 주석에있는 이름을 프로젝트에있는 것과 똑같이 작성하면 올바르게 처리됩니다. –

0

죄송합니다. 이전 게시물을 되살려 주셔서 죄송 합니다만,이 문제는 조금 전에 저를 괴롭혔습니다. codeigniter MY_Controller not found

그냥에서의 경우 테이블에 자신의 머리를 두드리는 것 가난한 영혼이 그들이 전에 위의 포스트 건너되지 않은 :

는 나는이 링크를 추가 거라고 생각. 막심 모린과 필 철갑 상어에

감사 :

function __autoload($class) 
{ 
    if (strpos($class, 'CI_') !== 0) 
    { 
     if (file_exists($file = APPPATH . 'core/' . $class . EXT)) 
     { 
      include $file; 
     } 
    } 
}