저는 CodeIgniter를 사용하여 포트폴리오 웹페이지를 개발하였습니다.
간단한 CodeIgniter에 대한 설명과 사용법에 대해 알아보겠습니다.
■ CodeIgniter 란?
- PHP기반의 framework로 웹 개발 시 필요한 여러 라이브러리를 제공합니다.
- M-V-C 패턴을 사용합니다.
- 깔끔한 URL을 생성합니다. (세그먼트기반 URL -> example.com/news/article/111)
■ M-V-C 패턴이란?
- 에플리케이션을 3가지 역할로 나누어 개발하는 개발 방법론
- Model : 데이터구조를 표현. 애플리케이션이 '무엇'을 할지 정의. 일반적으로 데이터 추출,입력,갱신 함수를 포함
- View : 사용자에게 보여지는 부분. 일반적으로 웹페이지
- Controller : 애플리케이션이 '어떻게' 동작할지 정의. 일반적으로 뷰와 모델 사이에서 동작
■ 기본 사용법
- CodeIgniter 다운로드
url : http://www.ciboard.co.kr/user_guide/kr/overview/getting_started.html
- 가상호스트 설정
<VirtualHost *:80>
##ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "D:/project/Intro/CodeIgniter"
ServerName stage.intro.devs
ServerAlias stage.intro.devs
##ErrorLog "logs/dummy-host.example.com-error.log"
##CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
CodeIgniter의 기본 디렉토리는 CodeIgniter/index.php
- Controller
<?php
class Blog extends CI_Controller {
public function index()
{
// domain.com/index.php/blog(/index) 접근 시
echo 'Hello World!';
}
public function comments()
{
// domain.com/index.php/blog/comments 접근 시
echo 'Look at this!';
}
}
경로 : CodeIgniter/application/controllers/Blog.php
※ 2번째 세그먼트(index(생략가능) / comments)에 따라 컨트롤러 내부 함수 호출
- View
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $heading;?></h1>
</body>
</html>
경로 : CodeIgniter/application/vies/blogview.php
<?php
class Blog extends CI_Controller {
public function index()
{
$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";
$this->load->view('blogview', $data);
}
}
$data 배열에 선언된 데이터가 view로 전달 ( C - $data['title'] => V - $title )
※ $view = $this->load->view('blogview', $data); -> view를 바로 출력하지 않고 변수로 전달 가능
- Model
<?php
class Blog_model extends CI_Model {
public $title;
public $content;
public $date;
public function __construct()
{
// Call the CI_Model constructor
parent::__construct();
}
public function get_last_ten_entries()
{
$query = $this->db->get('entries', 10);
return $query->result();
}
}
경로 : CodeIgniter/application/models/Blog_model.php
<?php
class Blog_controller extends CI_Controller {
public function blog() {
// Blog_model 호출
$this->load->model('blog');
// Blog_model 내부 get_last_ten_entries function 호출
$data['query'] = $this->blog->get_last_ten_entries();
$this->load->view('blog', $data);
}
}
여기까지 CodeIgniter에 대한 설명과 기본적인 사용법에 대해 알아보았습니다.
위에서 설명한 기능은 기본적인 내용으로 CodeIgniter에는 앞서 설명하지 않은 다양한 라이브러리가 존재합니다.
- 코드이그나이터 한글 매뉴얼 페이지(http://www.ciboard.co.kr/user_guide/kr)
- CodeIgniter 한국사용자포럼(https://www.cikorea.net/)
위 2개의 사이트를 참고하시면 많은 도움되실 겁니다.
다음에는 마지막으로 제가 만든 포트폴리오 페이지에 대해 포스팅하겠습니다.