CI 묻고 답하기

제목 CI 3.0 위젯 질문
글쓴이 foglove 작성시각 2016/01/24 20:01:21
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13901   RSS

현재 제가 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

ci3점대 버전에서 돌아가는 widget 버전을 찾아보셔야할 겁니다.

한대승(불의회상) / 2016/01/25 08:35:09 / 추천 0

CI 2.X는 컨트롤로, 모델, 라이브러리 파일명 규칙이 모두 소문자였던것과 달리 CI3.x는  첫 문자가 대문자로 변경 되었습니다.

에러 메시지는 클래스에서 오브젝트를 생성하려하는데 클래스가 선언되지 않아 발생 한 것으로 보입니다.

코드 추적 하시면서 오류 수정 하시면 사용 가능해 보이니 마음을 가라 앉히시고 디버깅 해보세요.