[JAVA_Back-End]

[PHP] PHP CodeIgniter 본문

Programming/PHP

[PHP] PHP CodeIgniter

너굴위 2024. 3. 27. 17:33
728x90
반응형

CodeIgniter?

PHP기반의 프레임워크

MVC모델을 지원하며 빠르다.

 

Model: Controller로부터 전달받은 객체 또는 데이터를 Application의 Business Logic에 따라 가공

View: 데이터의 입력과 출력을 담당

Controller: View로부터 넘겨 받은 메시지 또는 객체를 파악하여 해당 객체를 어떤 Model로 전달할지를 결정


Controller

1. URL에 맵핑되는 작업을 수행

if) url이 www.testpage/index.php/webinfo 라면,Controller 디렉토리 밑에 webinfo.php를 생성하면 codeigniter가 1:1 매칭을 한다.

 

※ webinfo.php파일 내부에서 class name은 webinfo로 동일하게 사용해야한다.

※ url이 www.testpage/index.php/webinfo면 webinfo class내부의 index메소드를 호출한다.

※ url이 www.testpage/index.php/webinfo/get/3이면 webinfo 클래스 내부의 get 메소드를 호출하고 파라미터 인자에는 3이 들어가 echo로 출력된다.

 

webinfo.php
class Webinfo extends WB_Controller{
	public function index() {
    	echo 'webinfo page';
   	}
    public function get($id) {
    	echo 'webinfo'.$id;
    }
 }

 


View

1. 시각적으로 표현하는 것과 관련되어 있는 것들만 모아두는 저장소

2. view에 어떤 data를 전달하고 싶으면 배열로 view 두 번째 인자로 전달해준다.

 

※ index 메소드가 실행되면 view 메소드에 webinfo라는 값을 인자로 전달하며 views 디렉토리 밑에 webinfo.php을 로드한다.

=> $this -> load -> view('webinfo'); API를 호출하면 로딩하고자 하는 파일 이름에서 .php를 제외한 부분을 인자로 전달하면 codeigniter가 알아서 로드해준다.

 

webinfo.php
class Webinfo extends CI_Controller {
	public function index() {
    	$this -> load -> view('webinfo');
    }
    public function get($id) {
        $data = array('id' => $id);
        $this -> load -> view('get',$data);
    }
}

Model

1. model은 Database를 의미한다고 봐도 된다. Database를 다루는 비즈니스 로직을 Model에 모아 데이터와 View를 격리시켜 토드관리의 편의성을 높이고 향후 데이터베이스를 다른 타입으로 교체하기 좋다.

 

※ 데이터베이스는 config > database.php에서 설정

     hostname: DB서버의 주소

     username: DB사용자 이름

     password:  DB비밀번호

     database:   DB명

     dbdriver:    DB의 종류로 지원되는 드라이브의 목록(system/database/drivers 디렉토리명 참고)

 

※ database설정파일은 기밀정보가 포함되어있기 때문에 노출시키면 안된다 (.gitignore에 추가)

 

2. 데이터베이스 라이브러리 로드

- autoload.php파일의 $autoload['libraries'] = array('database'); 형태로 배열에 'database'를 추가

- controller 내부 파일에서 $this -> load -> database()를 호출

728x90
반응형

'Programming > PHP' 카테고리의 다른 글

PHP란 무엇인가?  (1) 2024.03.07