728x90
목차
1. 프레임워크 구조
- 컨트롤러 → (모델에서 필요한 데이터 처리) → 뷰로 넘겨주기
- URL 구조 : localhost/index.php/컨트롤러/컨트롤러_함수/인자들..
- 컨트롤러
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Auth extends CI_Controller { function __construct() { parent::__construct(); } public function index() { $this->load->view('head'); $this->load->view('nav'); $this->load->view('auth/login'); $this->load->view('footer'); } ?>
- 컨트롤러 파일에서 Class 이름은 첫글자 대문자로 써야하고, 파일명과 동일하게 작성
- 초기 해당 컨트롤러에서 index()가 호출됨.
- 모델
<?php class User extends CI_Model { function __construct() { parent::__construct(); } function add($option) { $this->db->set('userID', $option['userid']); $this->db->set('userPasswd', $option['userPasswd']); $this->db->set('userName', $option['userName']); $this->db->set('userSex',$option['userSex']); $this->db->insert('user'); $result = $this->db->insert_id(); return $result; } ?>
- 모델은 대체적으로 DB와 상호작용하는 직접적인 역할임
- DB 사용방법들은 codeigniter 한국개발자포럼? 거기가면 문법들 나와있으니 모르는거 찾으면됨
- model 의 함수에 들어있는 인자는, 컨트롤러에서 넘어옴
- 뷰
<div id="cont-log"> <form action="/index.php/auth/authentication" id="login-form" method="POST"> <label class="legend">아이디</label> <input name="userid" type="text" required> <label class="legend">패스워드</label> <input name="password" type="password" required> <input type="submit" name="key" value="login"> <a class="legend" style="float:right;" href="/index.php/auth/register">회원가입</a> </form> </div>
- 뷰는 말그대로 사용자에게 보여지는 파일임
2. 설정파일 (config 폴더)
config 폴더를 살펴보면 많은 설정 파일들이 있음.
- autoload : 자동으로 로딩되는 기능들을 설정 가능
- config : 실제 설정내용(db나 등등)을 기입
- database : db 관련 설정
- routers : url 경로 라우팅 관련 설정 가능
autoload 파일안에서 helper랑 library도 설정 가능
- helper
자주 사용하는 로직을 재활용 할 수 있게 만든 일종의 Library
- library
말 그대로 라이브러리
Helper와 Library의 차이점은 Helper가 객체지향이 아닌 독립된 함수라면 Libary는 객체지향인 클래스임.
3. 로그
디폴트로 log_threahold 값이 0으로 되어있음. 4번으로 바꾸면 log 폴더에 로그쌓이는걸 볼수 있음
4. 세션
For MySQL
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
- 세션 저장 sql
- 세션 값이 저 값에 따라서 저장됨. 세션에 어떤 값이 저장되는지는 config에서 설정할 수 있음.
5. Application Flow
- index.php는 CodeIgniter을 시동하기 위한 기본적인 리소스들을 초기화 하는 Front Controller로서의 역할을 수행함.
- Router은 각각의 HTTP 요청이 어디로 연결되는지, 어떤 역할을 수행해야 하는지 알려줌.
- 만약 캐시 파일이 있으면, 기존의 시스템 실행 과정을 건너뛰고 브라우저에 캐시를 바로 보낸다.
- 보안. Application Controller가 로드되기 전에 HTTP 요청의 값들을 필터링한다.
- Controller가 특정 요청을 처리하기 위한 Model, Core Libraries, Helpers, 그리고 그 외 리소스들을로드한다.
- 데이터 등이 모두 처리된 View가 최종적으로 브라우저에 띄워진다. 만약 캐싱이 켜져 있다면, View는 바로 다음 요청에 응답될 수 있도록 일단 먼저 캐시에 저장된다.
728x90
'프로그래밍 관련 > Web' 카테고리의 다른 글
php 기본 문법 정리 (0) | 2020.06.30 |
---|---|
Codeigniter를 이용한 php 사이트 제작 (0) | 2020.06.30 |
자바 웹 프로그래밍 개발환경 구축하기 (8) | 2018.09.15 |
웹이란 무엇인가?(2) (0) | 2018.09.15 |
웹이란 무엇인가?(1) (1) | 2018.09.14 |