코드이그나이터(ci)

EP03. 코드이그나이터 ( 라우트 이해 및 설정)

나는야리코더 2024. 8. 9. 17:22

application/config/routes.php

> 라우팅은 url 체계를 만드는 중요한 역할을 한다.

> default_controller : 도메인 (또는 내가 ci를 설치한 폴더)을 호출했을 때 가장 첫 번째로 뜨는 컨트롤러를 설정해주는 것.

> 라우트에서 컨트롤러를 호출하고, 컨트롤러에서는 뷰를 호출한다.

 

> 컨트롤러 이름과 호출하는 컨트롤러의 파일이름은 동일해야 한다.(파일 이름의 첫 문자는 대문자로)

$route['default_controller'] = 'welcome';

application/config/routes.php 에서 welcome은 컨트롤러 명,

application/controllers/Welcome.php 처럼 welcome(x) / Welcome(o)

 

>웹브라우저에 도메인, 도메인/index.php, 도메인/index.php/welcome 을 치면 각각 같은 화면이 호출된다.

> Welcome 컨트롤러 안에 function index , index 라는 것은 항상 먼저 실행되는 것.

 

> view 폴더 안에 있는 welcome_message 파일 호출 

> view는 html로 이루어져 있다.

 

> welcome_message의 h1태그를 한글로 수정하고 웹브라우저를 실행하

 

> 아래와 같은 결과가 나온다.

 


> main 컨트롤러와 뷰를 추가함.

> application/config/routes.php에 아래와 같이 추가.

//$route['(:any)'] =  'welcome'; //모든 주소가 welcome으로 뜸
$route['(:any)/(:any)'] =  'welcome';

 

> 웹 브라우저에 [도메인/index.php/main] 을 쳤을 때

 

> [도메인/index.php/mainzz] 를 쳤을 때 (없는 컨트롤러이기 때문에 404가 뜸)

 

> [도메인/index.php/main/zzz] 를 쳤을 때

> [도메인/index.php/mainzz/zzzb] 를 쳤을 때

$route['(:any)/(:any)'] =  'welcome';

를 추가했기 때문에 / 형식에 맞는 주소들은 모두 welcome 페이지로 이동하게 된다. 

 


** 코드이그나이터를 사용하는 이유 **

세션, 쿠키 관리, 보안 관리에서 수월해지고 페이지를 늘려가는 상황이 생긴다면 반드시 코드이그나이터를 사용하는 것이 좋음. 코드이그나이터를 사용함으로서 웹 프로젝트 하나 안에서 다른 페이지들을 이동을 하더라도 세션을 공유할 수 있게 됨. a 페이지에서 로그인을 했으면 b 페이지에서도 로그인이 되어 있어야 하는데 만약 코드이그나이터가 없이 페이지가 이동되는 경우에 어떤 사이트를 만든다면 세션이 여기서도 공유되고 저기서도 공유가 돼야 되는데 그걸 일반적인 형태로 만들어 놨다가는 보안에 굉장히 취약해질 수도 있음. 또한, 속도나 성능면에서 굉장히 손해 보는 부분들이 있기 때문에 웹 프레임 워크를 사용하는것임. 비단 php 뿐만 아니라 모든 언어에서 웹 프레임워크를 쓰는 것임.