language:php:codeigniter:basic
목차
<title>CodeIgniter</title>
커스터마이징이 까다로워서 그만 둠
설치
기본
- 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' 와 같이 폴더 경로 전체를 적어준다.
CodeIgniter
Application Flow Chart
정적 페이지 작성
간단히,
- 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 추가
<?php class Pages extends CI_Controller { public function view($page = 'home') { } }
별로 티는 안나지만, 새로운 기능을 추가했다. 사용하는 방법은,
http://(test-site)/pages/view/$page
와 같은 형식으로 적어주면 된다.
뷰 페이지 추가
application/views/templates/header.php 파일 추가
<html> <head> <title><?php echo $title ?> - CodeIgniter 2 Tutorial</title> </head> <body> <h1>CodeIgniter 2 Tutorial</h1>
- $title 항목은 나중에 컨트롤러에 의해 채워진다.
application/views/templates/footer.php 파일 추가
<strong>© 2011</strong> </body> </html>
컨트롤러에 로직 추가
아무 내용으로든, 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를 감추는 방법은 아래쪽에.
동적 페이지 작성
트러블슈팅
- 서브 디렉토리를 사이트 주소로 사용 중인데 Index.php를 삭제하려면
- .htaccess 파일에 RewriteEngine을 추가한다. rewrite 구문은 모르므로.. 패스
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]
- IIS에서 테스트하는 경우, url rewrite를 적용하는 방법 : url-rewrite-for-iis
커뮤 사이트
- http://www.codeigniter-kr.org/ : 한국 사용자 모임
language/php/codeigniter/basic.txt · 마지막으로 수정됨: 2024/04/23 22:45 저자 127.0.0.1