제목 | CI 3.0 위젯 질문 | ||
---|---|---|---|
글쓴이 | foglove | 작성시각 | 2016/01/24 20:01:21 |
|
|||
현재 제가 php7 환경에 CI 3.0 버전을 설치 해서 위젯 설정 중인데 2.XX 때 위젯을 가지고 와서 하니까 안되서 찾아 보니까 선언을 할때 widget::run('head', $head); ==> $this->widget->run('common/Header'); 이렇게 바꿔서 써야된다고 해서 첫번째 오류는 잡았는데 이 다음에 나는 오류를 해결을 못하겠어요 .
An uncaught Exception was encountered Type: Error Message: Class 'CI_Widget' not found Filename: /home/hosting_users/fogtime/www/system/core/Common.php Line Number: 196 Backtrace: File: /home/hosting_users/fogtime/www/application/libraries/Widget.phpLine: 25Function: __construct File: /home/hosting_users/fogtime/www/application/controllers/new_main/Main.phpLine: 8Function: run File: /home/hosting_users/fogtime/www/index.phpLine: 292Function: require_once
이런 오류가 나서 해당 오류 나는 줄을 찾아가니
$_classes[$class] = isset($param) ? new $name($param) : new $name(); 196 번째 줄 <<< return $_classes[$class];
여기가 문제가 있다는데 어떻게 해결해야 될지 모르겟네요.
ci 3.0 때로 올려서 하는중인데 중간중간 계속 막혀서 다시 내려야 할까 고민도 되네요.
CI 2.XX 때랑 3.XX 떄랑 위젯 사용 방법이 다른가요?
2.XX 때 다른게 1개 더 있어서 찾았는데 같은
class Widget { function Widget() {
} }
이렇게 웨젯 2번 선언 하면 에러가 나더군요 이것도 위젯 들어가서 수정 했습니다. 다른 클래스 바꿔서요.
그리고 require_once APPPATH.'controllers/'.$name.".php"; 이분도 .EXT 되어 있었는데 .php 변경 해서 오류는 해결 했습니다.
혹시 CI 3.0 에서 잘 돌아 가는 위젯이 따로 있나요?
현재 제가 쓰는 위젯 소스 같이 올릴테니 머가 문제지 도와주세요 _assign_libraries(); require_once APPPATH.'controllers/'.$name.".php"; if (strpos($name, '/')) { $temp = explode('/', $name); if(is_dir(APPPATH.'controllers/'.$temp[1])) { $name = ucfirst($temp[2]); } else { $name = ucfirst($temp[1]); } } else $name = ucfirst($name); $widget = new $name(); return call_user_func_array(array(&$widget, 'index'), array_slice($args, 1)); } function _assign_libraries() { $CI =& get_instance(); foreach (get_object_vars($CI) as $key => $object) { $this->$key =& $CI->$key; } } } ?>
|
|||
다음글 | 이쿼리 어떻게바꾸어야하나요? (2) | ||
이전글 | where절 DB 에러 문제입니다 ㅠ,ㅠ (1) | ||
변종원(웅파)
/
2016/01/24 21:35:14 /
추천
0
|
한대승(불의회상)
/
2016/01/25 08:35:09 /
추천
0
CI 2.X는 컨트롤로, 모델, 라이브러리 파일명 규칙이 모두 소문자였던것과 달리 CI3.x는 첫 문자가 대문자로 변경 되었습니다. 에러 메시지는 클래스에서 오브젝트를 생성하려하는데 클래스가 선언되지 않아 발생 한 것으로 보입니다. 코드 추적 하시면서 오류 수정 하시면 사용 가능해 보이니 마음을 가라 앉히시고 디버깅 해보세요.
|
ci3점대 버전에서 돌아가는 widget 버전을 찾아보셔야할 겁니다.