====== 설치 ======
기본
* CodeIgniter의 최상단 폴더의 index.php가 웹사이트의 root에 위치하도록 복사
* 신규 사이트 : abc 폴더를 추가(했다고 하면)
* CodeIgniter 폴더의 모든 파일을 abc에 복사.
* application/config/config.php : base url 수정
* DB를 사용하는 경우, database.php를 수정
보안등의 이유로 **system**과 **application**폴더 이름을 바꾸려면,
* 폴더 이름 변경 후
* 폴더 최상단(root)의 **index.php** 파일에서 **$system_folder**와 **$application_folder** 폴더 변수 값을 수정
CodeIgniter 폴더를 이동해서 사용하고 싶다면
* **$system_folder**와 **$application_folder** 변수에 **'/www/UserFolder/system'** 와 같이 폴더 경로 전체를 적어준다.
{{tag> CodeIgniter}}
====== Application Flow Chart ======
{{http://ellislab.com/_user_guide_src_ci/images/appflowchart.gif}}
* from http://ellislab.com/codeigniter/user-guide/overview/appflow.html
====== 정적 페이지 작성 ======
* [[http://ellislab.com/codeigniter/user-guide/tutorial/static_pages.html|여기 정리]]
간단히,
- **application/controllers/** 폴더에 새로운 컨트롤러 추가
- **application/views/** 폴더에 화면 표시용 뷰 페이지를 추가
- (1)번에서 적은 컨트롤러가 호출될 때, 뷰 폴더에 추가한 페이지를 호출하면 된다.
===== CI 의 페이지 표시 방식 =====
URL의 위치별로 역할이 정해져 있다.
http://example.com/news/latest/10
http://example.com/[Controll-Class]/[Controller-Mehtod]/[arguments]
===== Controll 페이지 추가 =====
* 모든 웹 요청은 컨트롤러로부터 시작하므로, Controller를 추가하는 것으로 시작한다.
**application/controllers/pages.php** 추가
별로 티는 안나지만, 새로운 기능을 추가했다. 사용하는 방법은,
http://(test-site)/pages/view/$page
와 같은 형식으로 적어주면 된다.
===== 뷰 페이지 추가 =====
**application/views/templates/header.php** 파일 추가
* $title 항목은 나중에 컨트롤러에 의해 채워진다.
**application/views/templates/footer.php** 파일 추가
CodeIgniter 2 Tutorial
© 2011
===== 컨트롤러에 로직 추가 =====
아무 내용으로든, **home.php**와 **about.php** 파일을 작성합니다.
아까 작성한 pages.php 파일의 view 함수를 변경 합니다.
public function view($page = 'home')
{
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
===== 접속 테스트 =====
* http://(site-url)/index.php/pages/view
* http://(site-url)/index.php/pages/view/about
===== 라우팅 Routing =====
* **application/config/routes.php** 페이지에서 라우팅 주소를 변경할 수 있다는 내용인데,
// 아래 방법은 pages/view를 사이트 기본 접속 주소로 바꿔버리므로, 이런 것이 있다는 정도만 보는게 좋을 듯.
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
// http://(site-url)/page/ 를 입력하면, http://(site-url)/pages/view/ 에 접속하라는 정의
$route['page'] = 'pages/view';
// http://(site-url)/page/home 과 같이 입력하면, http://(site-url)/pages/view/home 에 접속하라는 정의
$route['page/(:any)'] = 'pages/view/$1';
* sub-page를 웹사이트로 사용하는 경우, index.php를 감추는 방법은 아래쪽에.
* [[http://ellislab.com/codeigniter/user-guide/general/routing.html|URI routing]]
====== 동적 페이지 작성 ======
* [[http://ellislab.com/codeigniter/user-guide/tutorial/news_section.html|news 섹션 작성]]
====== 트러블슈팅 ======
* 서브 디렉토리를 사이트 주소로 사용 중인데 Index.php를 삭제하려면
* **.htaccess** 파일에 RewriteEngine을 추가한다. rewrite 구문은 모르므로.. 패스
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
* IIS에서 테스트하는 경우, url rewrite를 적용하는 방법 : [[language:php:php-on-iis#url-rewrite-for-iis]]
====== 커뮤 사이트 ======
* [[http://www.codeigniter-kr.org/]] : 한국 사용자 모임