개발노트/포트폴리오사이트

나만의 포트폴리오 웹페이지 만들기 - 5 (CodeIgniter)

KimBY 2019. 6. 12. 14:07
728x90
반응형

저는 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

 

Getting Started With CodeIgniter ‐ 코드이그나이터 3.0 한글매뉴얼

© Copyright 2014 - 2016, British Columbia Institute of Technology. Last updated on Mar 21, 2016.

www.ciboard.co.kr

  - 가상호스트 설정

<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개의 사이트를 참고하시면 많은 도움되실 겁니다.

 

다음에는 마지막으로 제가 만든 포트폴리오 페이지에 대해 포스팅하겠습니다.

728x90
반응형