[CI] MVC

Grace Goh·2023년 3월 13일
0

PHP

목록 보기
1/19

MVC

코드를 용도에 맞게 분리할 수 있다.

  1. Controller

    url -> controller -> view

    사용자는 url을 입력해서 controller를 특정한다.
    /index를 입력해서 컨트롤러의 index()를 실행한다.

    그러면 컨트롤러는 다음과 같이 뷰를 로드한다.

    public function index() {
    
        $this -> load -> view('web/index', $data);

    User Controller라면 User View를 로드한다.


  1. View
    Controller -> View
    Controller는 View에만 명령을 내린다.
    뷰는 최종 결과물이다. 뷰->컨트롤러로 역행하지는 않는다.
    html과 유사하다. 미들맨.

  1. Model
    모델은 데이터베이스에 관한 로직이다. (여러 table 등)
    사용자가 Search, Modify 등의 controller를 호출한다면
    -> 모델(DB)에 접근해서
    -> 모델은 필요한 정보를 다시 컨트롤러로 보내준다.
    -> 그러면 컨트롤러는 데이터를 뷰로 보낸다.



다음 3가지 폴더는 1개의 레이아웃을 위해 유기적으로 연결돼 있다.

/controller
	/web.php
/model
	/common_model.php
/view
	/web/index.php

http://localhost/controller/method/param
http://localhost/컨트롤러/함수/매개변수
컨트롤러 안에 있는 함수를 찾아가라는 뜻

class Web {
	public function index($param) {
    }
}

클래스 네임은 대문자로 쓴다.

http://localhost/home/index 메서드는 안 써도 된다.

class Home {
	public function index() {
    	$this -> load -> view('home')
        # $this -> load -> view('web/index', $data);
    }
}

홈 컨트롤러
-> index 메서드
-> 이것은 뷰를 로드하는 실제 코드다.

# look individual's profile

class User {
	public function view($id) {
		// 사용자 record를 DB 저장하기 위해 DB 접근, 모델
		$this->load->model('user_model');
        $data = $this->user_model->get($id);
        $this->load->view('user', $data);
    }
}
profile
Español, Inglés, Coreano y Python

0개의 댓글