CI 묻고 답하기

제목 [자답]config 또는 컨트롤러 안에 코드 inlcude 방법문의...
카테고리 CI 2, 3
글쓴이 네이처그린 작성시각 2018/03/13 14:29:29
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 13397   RSS

안녕하세요, 제목과 같이 질문 드립니다. 통 개념이 안잡히네요;

 

일전에 묻고 답하기 게시판에 멀티도메인 관련 질의를 하였습니다.

링크 : http://www.codeigniter-kr.org/bbs/view/qna?idx=19526

 

해당 코드는 각각의 config 파일에 코드를 수정하여야 하는데..

하나의 php파일을 만들어서 각 config파일로 include 하는 방법을 여쭈어 봅니다.

또는 참고할만한 링크가 있으시면 공유좀 부탁드려요 ㅠ.ㅠ

 

답변엔 미리 감사드립니다!


[자답]

config 폴더내에는 뭔가 함부로 건들면 안될꺼 같아서 조심스러웠는데..

아주아주 단순무식하게 include 명령어로 해결했습니다.

config 폴더내에 multidomain.php를 만들어 둡니다. 해당 파일의 소스는 아래와 같습니다.

<?php
$httpHost = $_SERVER['HTTP_HOST'];
switch ($httpHost) :
	case "domain.com":
		//config.php
		$baseurl = "https://"."domain.com";
		$sess_save_path = "sessions_main";
		$sess_cookie_name = "sessions_main";
		//database.php
		$hostname = "YOUR HOSTNAME";
		$username = "USERNAME";
		$password = "PASSWORD";
		$database = "DATABASE";
		//routes.php
		$route['default_controller'] = 'sample/home';
		$route['404_override'] = '';
		$route['translate_uri_dashes'] = FALSE;
		break;
	case "domain.net":
		//config.php
		$baseurl = "https://"."domain.net";
		$sess_save_path = "sessions_main";
		$sess_cookie_name = "sessions_main";
		//database.php
		$hostname = "YOUR HOSTNAME";
		$username = "USERNAME";
		$password = "PASSWORD";
		$database = "DATABASE";
		//routes.php
		$route['default_controller'] = 'sample/home';
		$route['404_override'] = '';
		$route['translate_uri_dashes'] = FALSE;
		break;
	default:
		//config.php
		$baseurl = "";
		$sess_save_path = "sessions_main";
		$sess_cookie_name = "sessions_main";
		//database.php
		$hostname = "YOUR HOSTNAME";
		$username = "USERNAME";
		$password = "PASSWORD";
		$database = "DATABASE";
		//routes.php
		$route['default_controller'] = 'sample/home';
		$route['404_override'] = '';
		$route['translate_uri_dashes'] = FALSE;
endswitch;

 

해당 파일을 config.php, database.php, routes.php에

include ('multidomain.php');

이렇게 한줄 적어두고  중복된 코드는 삭제하면 되겠습니다.

 다음글 zip 라이브러리 압축 용량 제한의 궁금합니다. (3)
 이전글 특정 시간차가 나는 데이터만을 얻어오려 합니다. (5)

댓글

kaido / 2018/03/13 16:16:55 / 추천 0

include가 필요하신건가요?

아니면 

config 변수를 전달 하고 싶으신 건가요?

 

일단 CI에서는 include를 자제하기를 권장 하고있지만, 비슷한 형태의 구현방법은 있습니다.

변종원(웅파) / 2018/03/13 16:31:27 / 추천 0

ci는 php 프레임워크입니다. 그냥 php에서 쓰던대로 쓰실 수 있습니다.

include(파일);

ci 내장함수중 다음도 똑같은 역할입니다.

$this->load->file('파일경로/파일명');
네이처그린 / 2018/03/14 10:19:14 / 추천 0
감사합니다. 참고 하겠습니다 ^^