제목 | Trying to get property 'load' of non-object 에러 문의 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 민속 | 작성시각 | 2019/07/25 14:55:47 |
|
|||
안녕하세요. 다국어치리 오류관련 문의 드립니다. hooks을 이용하여 다국어처리를 하였습니다. 로컬에서는 (apache+ mysql +CI) 정상적으로 작동이 되는데 apache서버에 올린 후 아래와 같은 오류가 납니다. 헬퍼를 불러오지 못해서 에러가나는건지 잘 모르겠습니다. 도움좀 부탁드립니다. hooks/MultiLanguageLoader.php 파일 ---------------------------------------------------- class MultiLanguageLoader { function initialize() { $ci =& get_instance(); // load language helper $ci->load->helper('language'); <== 이부분 에러... $siteLang = $ci->session->userdata('site_lang'); if ($siteLang) { // difine all language files $ci->lang->load('header',$siteLang); } else { // default language files $ci->lang->load('header','kr'); } } } |
|||
첨부파일 |
코드이그나이터.PNG (27.2 KB) |
||
다음글 | 한글이동주소 현상대해 (1) | ||
이전글 | 페이지네이션이 이상하게 보이는 현상 | ||
kaido
/
2019/07/25 15:39:44 /
추천
0
|
민속
/
2019/07/25 15:57:25 /
추천
0
우선 답변 감사드립니다. 제가 ci를 접한지 얼마되지를 않아서요~ 후킹시점 확인은 어떻게 확인해야 할까요?
pre_controller를 말씀하시는건가요?? 그렇다면 로컬에서는 작동하는데 서버에서 위의 오류가 나는건 무엇을 유추해 봐야 될까요?? ㅠ |
kaido
/
2019/07/25 18:33:47 /
추천
0
넵. 후킹 포인트가 컨트롤러를 로드하기 전입니다. 저도 테스트를 해봐야겠지만, CI 이라는 물건은 기본적으로 컨트롤러가 메인입니다. 정확히는 loder calss가 잔뜩 로드해서 컨트롤러에서 사용가능하게끔 DI 형태로 꾹꾹 채워넣습니다. 컨트롤러가 로드되지 않는다는 의미는 CI 의 전반적인 기능이 사용 불가능이라는 의미와 같습니다.
로컬서버와 라이브서버가 다르다면 로그 파일을 확인해 보시는것이 우선일것 같습니다.
다만 보편적으로 로컬 서버에서 작동되고 라이브서버에서 작동 안되는 이유는 파일명 규칙에 어긋나서가 90%입니다. 윈도우에서는 무시하다가 리눅스 환경에서 대소문자를 가리기 때문에, 카멜케이스 규칙을 꼭 지켜주셔야 합니다. 파일명 첫번째는 영문대문자! 말이죠. |
kaido
/
2019/07/25 18:56:06 /
추천
0
일단 실제 실험해보니 pre_controller 에서는 helper가 로드 안되는게 맞습니다. 그 다음 단계인 post_controller_constructor 으로 컨트롤러가 일단 로드 되어야 helper도 로드가 가능 합니다.
|
후킹 시점이 언제이죠?
컨트롤러 로드 이전이면 헬퍼 자체가 로드되지 않을 수 있습니다.