CI 코드

제목 [예제] 세그먼트 값 찾기 역발상 코드
글쓴이 ci세상 작성시각 2009/09/10 15:34:04
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13988   RSS

목적 : 파라미터주소에서 직관적으로 바로 변수만 찍으면 값을 찾을 수 있는것이 절실히 필요할 경우 ~~

<파라미터의 경우>

id=test 라고 되어 있으면 echo $id 만 찍으면 test가 나옴


<세그먼트의 경우>

id/test 라고 되어있는것을 찾기 위해서 여러가지 코드를 경유시키고 $this->라이브러리->객체(); 이런식으로 찍어야 함


<공통 라이브러리, 헬퍼, 모델에 다음 코드를 넣는다>

	function common() {
  		parent::Model();
  		

		foreach($this->uri->uri_to_assoc(3) as $key => $val) :

			define(strtoupper($key), $val); 
		
		endforeach;   		
	}

=> 위의 경우에는 모델에 넣은 경우입니다.

=> $this->url->url_to_assoc(3) 는 파라미터처럼 인식할 세그먼트 시작위치값입니다.
예) 컨트롤러/메쏘드/값 이 보통 많이 쓰기 때문에 값부터 시작하기에 3입니다.

=> strtoupper 를 쓴 이유는 소문자로 해도 되지만 상수처럼 보이기 위하여 그냥 넣어본 것이구요^^



<이제 MVC 어디서나>

<?=ID?>

를 찍으시면 됩니다. 


이정도면 세그먼트를 파라미터만큼 간단히 값을 가져다 쓸 수 있는것인가요?^^






 

 다음글 한글 랭귀지 팩 (10)
 이전글 [APP] CIMyAdmin 0.30 (6)

댓글

최용운 / 2009/09/10 15:46:00 / 추천 0
 멋진 아이디어인데 ?
ci세상 / 2009/09/10 15:48:24 / 추천 0
귀차니즘의 생각이었는 이쁘게 봐주셔서 감사합니다. ^^ ~~ 칭찬 자주 듣기
변종원(웅파) / 2009/09/10 17:00:48 / 추천 0
와우~~~ 아이디어 짱~~~~~
한가지 추가하자면 다른 상수와 충돌날 가능성이 있으니까 상수선언할때 접두사나 접미사를 넣어주는건
어떨까?

CI_ID 정도....

ci세상 / 2009/09/10 17:55:05 / 추천 0
접두사 접미사 괜찮을것 같습니다. ^^ 전 현재 소문자로 동일하게 쓰면서

Message: Constant num already defined 와 같은 메세지가 나오면 에러 예외처리 >> 코어 확장을 시켜서 >> 다시 상수를 덮어버리고 오류를 안나도록 하고 쓰고 있습니다.^^
터프키드 / 2009/09/18 17:29:27 / 추천 0
ci세상님 새로운 세상을 보여주셔서 늘 감사해요.. 생각치도 못했는데!
정말 괜찮은거 같아요
저는 약간 응용해서 쓰고있어요 post랑 segment를 같이 쓰고 있어서..
멋들어진 코드는 아니지만 공유목적으로 코드 올릴께요^^;
	public function extract_segment($nth) {
		$es = array();
		foreach($this->uri->uri_to_assoc($nth) as $key => $val) {
			$es[$key] = $val;
		}
		
		if(count($_POST) > 0) {
			foreach($_POST as $key => $val) {
				$es[$key] = $val;
			}
		}
		
		return $es;
	}
리턴되는 $es 배열변수에는 세그먼트를 자리수만큼부터 나눈 쌍과 포스트 쌍이 같이 생겨요
문제는 동일한 변수가 post와 segment로 둘다 오는경우는.................;;
다시한번 좋은팁 공유 감사드립니다(__)