안녕하세요, 제목과 같이 질문 드립니다. 통 개념이 안잡히네요;
일전에 묻고 답하기 게시판에 멀티도메인 관련 질의를 하였습니다.
링크 : 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');
이렇게 한줄 적어두고 중복된 코드는 삭제하면 되겠습니다.
ci는 php 프레임워크입니다. 그냥 php에서 쓰던대로 쓰실 수 있습니다.
include(파일);
ci 내장함수중 다음도 똑같은 역할입니다.
$this->load->file('파일경로/파일명');
include가 필요하신건가요?
아니면
config 변수를 전달 하고 싶으신 건가요?
일단 CI에서는 include를 자제하기를 권장 하고있지만, 비슷한 형태의 구현방법은 있습니다.