CI 코드

제목 [코어확장] null 경고문구 없애기
글쓴이 ci세상 작성시각 2009/08/21 13:20:19
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 19423   RSS

- 질문 : http://codeigniter-kr.org/qna/view/809/page/1
- 논쟁 : http://codeigniter.com/forums/viewthread/48522
- 결론 : isset 이나 @ 같은것으로 코드를 더 복잡하게 하는것보다 개발자의 뜻에 따라서 코어확장시켜서 상황대처^^


아래 코드는 에러메세지 중에서 Undefined variable 가 있을때만 잡아주게 했습니다.

application/libraries/MY_Exceptions.php 로 새로 만드셔서 사용하시면 됩니다.

<?php

    class MY_Exceptions extends CI_Exceptions
    {

        public function __construct()
        {
            parent::__construct();
        }

    	function show_php_error($severity, $message, $filepath, $line)
		{	
			$severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
		
			$filepath = str_replace("\\", "/", $filepath);
			
			// For safety reasons we do not show the full file path
			if (FALSE !== strpos($filepath, '/'))
			{
				$x = explode('/', $filepath);
				$filepath = $x[count($x)-2].'/'.end($x);
			}
			
			if (ob_get_level() > $this->ob_level + 1)
			{
				ob_end_flush();	
			}
			ob_start();
			include(APPPATH.'errors/error_php'.EXT);
			$buffer = ob_get_contents();
			ob_end_clean();
			
			

			//$msg_var = explode(":",$message); 
			//if($msg_var[0] != "Undefined variable")	echo $buffer;
			
			$error_tot = 0;
			
			if(preg_match_all("/.*(variable)/", $message, $matchs)) 
			{ 
			   if($matchs[1]) $error_tot++;
			} 

			if(preg_match_all("/.*(index)/", $message, $matchs)) 
			{ 
			   if($matchs[1]) $error_tot++;
			} 			
			
			if($error_tot == 0) echo $buffer;
			
			
		}
    } 
 다음글 [추천] CI 일본 개인블로그 주소들 (2)
 이전글 [예제] 랜덤문자열 생성 (1)

댓글

emc / 2009/08/21 13:40:38 / 추천 0
라이브러리 추가하고, autoload.php 에 추가만 하면 되나요?
변종원(웅파) / 2009/08/21 13:43:50 / 추천 0

라이브러리만 추가하시면 됩니다.

ci세상 / 2009/08/21 16:53:02 / 추천 0
이렇게 해두니 CI 가 아닌소스들 마구 가져다 붙여도 되네요 ^^
ci세상 / 2009/09/11 13:35:52 / 추천 0
에러문구별 특정상황을 예외처리하도록 정규식 코드로 변경되었습니다.