CI 코드

제목 HMVC for 3.0-dev
글쓴이 letsgolee 작성시각 2014/02/10 17:46:41
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 17831   RSS
 wiredesignz가 codeigniter 2.1.x용으로 개발한 HMVC를 3.0-dev에 맞게 수정한 버젼입니다. 
원래의 wiredesignz의 소스는 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc 여기서 구할 수 있습니다.
 
제가 첨부한 파일을 일단 설명을 해야 도움이 될 것 같습니다. 현재 3.0-dev는 계속 수정되어 가고 있습니다.
 
먼저 첨부한 파일을 열어보면 다음과 같은 경로로 되어 있습니다.
 
+-- application
|       |
|       +-- core
|       |
|       +-- third_party
|
+-- index.php
 
 
실제 파일들은 third_party 안에 MX라는 폴더 안에 있구요, 그것을 돌아갈 수 있도록 core에 "MY_"로 시작하는 파일들이 있습니다.
 
제가 변경한 부분을 설명을 드립니다.
 
1. codeigniter 3.0버젼부터 Router.php의 _set_default_controller() 함수가 변경되어 주소가 모듈형으로 인식이 불가하게 바뀌었습니다. 따라서 이 부분에서 문제가 되는 부분을 주석처리하는 함수를 application/third_party/MX/Router.php에 넣었습니다.
 
2. 마찬가지로 Loader.php에도 미세한 변경이 있지만 원래 작동되어야 하나 안되어 소스를 일일이 확인하다, wiredesignz에서 제공하는 application/third_party/MX/Loader.php에 버그가 있음을 알았습니다. 그 버그를 처리해서 3.0에도 작동하게 수정하였습니다. 
 
1번과 2번의 문제를 찾느라 며칠이 걸렸네요...
 
3. 3.0부터 core/CodeIgniter.php 역시 수정되어 더 이상 모듈과 작동이 안되도록 만들어졌기에 어쩔 수 없이 CodeIgniter.php파일을 수정해야만 했습니다. 그런데 코어는 되도록이면 수정하는 것을 원치 않기 때문에 꼼수를 부렸습니다. index.php파일을 수정하여 거기서 application/core/CodeIgniter.php파일이 존재하면 그 파일을 불러들이도록 수정했습니다. 따라서 codeigniter 3.0의 원본에서 수정된 파일은 index.php이고, 원본을 수정한 CodeIgniter.php파일이 application/core폴더에 있습니다. 이 파일들을 열어 비교해보면 어디가 변경되어 문제가 되는지 이해할 수 있을 겁니다.
 
첨부파일 HMVC_for_3.0-dev_.zip (27.2 KB)
 다음글 Naver 블러그 포스팅 라이브러리 (7)
 이전글 기본 모델입니다~ (4)

댓글

letsgolee / 2014/02/10 17:59:39 / 추천 0
 3.0부터는 세션이 드라이브 형태로 작동합니다. 주의하세요...
변종원(웅파) / 2014/02/10 19:27:32 / 추천 0
오랫만의 대박코드네요.
감사합니다.