일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- foreigen key
- 참조타입
- null/not null
- 지연로딩
- Shared Lock
- 메세지 큐
- Java
- 서버 스크립트
- 컬렉션 프레임워크
- 추상메서드
- InterruptedException
- exclusive lock
- N+1
- 원시타입
- 오버라이딩
- 프로그래머스
- 변수와 상수
- 변수와 메서드
- 연산자와의 관계
- git 기초
- 피연산자
- bufferedInputStream
- jsoup
- SQL
- 멱등성
- 즉시로딩
- select
- 프로그래머스 코테
- delete
- 오버로딩
- Today
- Total
[JAVA_Back-End]
[PHP] PHP CodeIgniter 본문
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()를 호출
'Programming > PHP' 카테고리의 다른 글
PHP란 무엇인가? (1) | 2024.03.07 |
---|