사용자 도구

사이트 도구


사이드바

카테고리

language:php:codeigniter:basic

CodeIgniter

커스터마이징이 까다로워서 그만 둠

설치

기본

  • CodeIgniter의 최상단 폴더의 index.php가 웹사이트의 root에 위치하도록 복사
    • 신규 사이트 : abc 폴더를 추가(했다고 하면)
    • CodeIgniter 폴더의 모든 파일을 abc에 복사.
  • application/config/config.php : base url 수정
  • DB를 사용하는 경우, database.php를 수정

보안등의 이유로 systemapplication폴더 이름을 바꾸려면,

  • 폴더 이름 변경 후
  • 폴더 최상단(root)의 index.php 파일에서 $system_folder$application_folder 폴더 변수 값을 수정

CodeIgniter 폴더를 이동해서 사용하고 싶다면

  • $system_folder$application_folder 변수에 '/www/UserFolder/system' 와 같이 폴더 경로 전체를 적어준다.

Application Flow Chart

정적 페이지 작성

간단히,

  1. application/controllers/ 폴더에 새로운 컨트롤러 추가
  2. application/views/ 폴더에 화면 표시용 뷰 페이지를 추가
  3. (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>&copy; 2011</strong>  
</body>
</html>

컨트롤러에 로직 추가

아무 내용으로든, home.phpabout.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

커뮤 사이트

language/php/codeigniter/basic.txt · 마지막으로 수정됨: 2022/12/07 22:30 저자 kieuns