CodeIgniter 컨트롤러, 뷰 라우팅: 예제를 통해 배우기
⚡ 스마트 요약
이 Code이 Igniter 예제는 라우팅, 컨트롤러 및 뷰가 어떻게 함께 작동하는지 보여주는 간단한 애플리케이션을 구축합니다. Composer를 사용하여 새 프로젝트를 생성하고, 라우트 맵을 생성합니다. URL컨트롤러 메서드에 대한 호출이 이루어지며, 각 메서드는 브라우저에 HTML을 반환하는 뷰를 로드합니다.

이 튜토리얼에서는 다음 주제들을 배우게 됩니다.
- 라우팅 라우팅은 응답을 담당합니다. URL 요청. 라우팅은 다음과 일치합니다. URL 미리 정의된 경로로 이동합니다. 일치하는 경로가 없으면, CodeIgniter에서 페이지를 찾을 수 없다는 예외가 발생합니다.
- 컨트롤러 라우트는 컨트롤러에 연결됩니다. 컨트롤러는 모델과 뷰를 연결하는 역할을 합니다. 컨트롤러는 모델에서 데이터와 비즈니스 로직을 요청하고, 그 결과를 뷰의 화면에 표시합니다. URL 요청이 특정 경로와 연결되면 컨트롤러의 공개 함수로 전달됩니다. 이 함수는 데이터 소스 및 비즈니스 로직과 상호 작용하여 결과를 표시하는 뷰를 반환합니다.
- 조회수 – 뷰는 프리젠테이션을 담당합니다. 뷰는 일반적으로 HTML, CSS 및 Java스크립트. 이 부분은 사용자에게 웹 페이지를 표시하는 역할을 합니다. 일반적으로 표시되는 데이터는 데이터베이스 또는 다른 사용 가능한 데이터 소스에서 가져옵니다.
새로 만드는 방법 Code이그나이터 프로젝트
Composer를 사용하여 새 프로젝트를 생성하겠습니다. PHP 내장 서버를 사용하므로 별도의 소프트웨어(예: )는 필요하지 않습니다. 아파치이 튜토리얼에서는 다음을 사용합니다. Windows 운영 체제에 맞춰 C 드라이브에 Sites 폴더를 만들었습니다. 원하시는 디렉토리를 사용하셔도 됩니다.
명령 프롬프트 또는 터미널을 열고 다음 명령을 실행하십시오.
cd C:\Sites
이제 우리는 다음을 생성할 것입니다. CodeComposer를 사용하여 Igniter 프로젝트를 생성하려면 다음 명령을 실행하세요.
composer create-project CodeIgniter/framework ci-app
이리:
- 위 명령은 새 파일을 생성합니다. CodeIgniter 프로젝트 버전 3(작성 시점 기준 최신 안정 버전 3.1.9 사용)을 ci-app이라는 디렉터리에 설치했습니다.
명령 실행이 완료되면 터미널에 다음과 유사한 결과가 표시됩니다.
다음 명령어를 실행하여 새로 생성된 프로젝트 디렉토리 ci-app으로 이동하세요.
cd ci-app
이제 PHP 내장 웹 서버를 시작하세요.
php -S localhost:3000
이리:
- 위 명령어는 내장 PHP 서버를 3000번 포트에서 실행합니다.
웹 브라우저를 열고 다음 주소로 이동하세요. URL: http://localhost:3000/다음 페이지가 표시됩니다.
위 페이지가 보이시면 설치가 성공적으로 완료된 것입니다. 축하합니다! Code이그나이터해당 페이지는 application/views/welcome_message.php에 있는 뷰에 의해 렌더링되며, 담당 컨트롤러는 application/controllers/Welcome.php에 있습니다.
Code점화기 라우팅
현재 저희 애플리케이션에는 단 하나의 기능만 있습니다. URL홈페이지인 '홈페이지'를 살펴보겠습니다. 이 섹션에서는 홈페이지를 맞춤 설정하고 몇 가지 새로운 요소를 추가할 것입니다. URL서로 다른 요청에 응답하는 것들.
먼저 홈페이지 경로부터 살펴보겠습니다. 아래 경로에 있는 routes 파일을 열어주세요.
application/config/routes.php
다음 내용이 표시될 것입니다.
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
이리:
- `$route['default_controller'] = 'welcome';`는 URI 요청에 응답하는 기본 컨트롤러를 정의합니다.
- `$route['404_override'] = ”;`를 사용하면 404 오류에 대한 사용자 지정 경로를 정의할 수 있습니다. 404 오류는 페이지를 찾을 수 없을 때 발생합니다. CodeIgniter에는 해당 오류에 대한 기본 핸들러가 있지만, 원한다면 자체 핸들러를 정의할 수도 있습니다.
- `$route['translate_uri_dashes'] = FALSE;`를 사용하면 하이픈(-)을 밑줄(_)로 변환할 수 있습니다. 이 옵션은 라우트가 작동하는 방식을 살펴볼 때 자세히 논의하겠습니다. Code점화기.
이제 우리가 프로그램을 실행했을 때 보았던 홈페이지를 표시하는 컨트롤러 메서드를 살펴보겠습니다. http://localhost:3000/다음 파일을 여세요:
application/controllers/Welcome.php
다음과 같은 코드가 표시될 것입니다.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
이리:
- `defined('BASEPATH') OR exit('No direct script access allowed');`는 index.php 파일을 거치지 않고 컨트롤러 클래스에 직접 접근하는 것을 방지합니다. MVC 패러다임에서 모든 요청은 단일 진입점을 가지며, 이는 CodeIgniter는 index.php입니다. 이 코드는 index.php를 통하지 않고 들어오는 모든 요청을 차단합니다.
- `class Welcome extends CI_Controller {…}`는 부모 클래스인 `CI_Controller`를 상속하는 `Welcome` 클래스를 정의합니다.
- `public function index()`는 홈페이지를 열 때 기본적으로 호출되는 공개 함수를 정의합니다.
- `$this->load->view('welcome_message');`는 application/views/welcome_message.php에 있는 welcome_message 뷰를 로드합니다.
지금까지 우리는 상자에서 꺼냈을 때 나오는 것만 살펴보았습니다. CodeIgniter를 사용해 보겠습니다. 이제 몇 가지 변경 사항을 적용해 보죠. 기본 페이지를 대체할 자체 홈페이지를 만들겠습니다. application/views/home.php 경로에 새 파일을 생성하고 다음 코드를 추가하세요.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> CodeIgniter Hello World </h1> </div> </section> </body> </html>
이리: 위 HTML 코드는 CDN에서 Bulma CSS 프레임워크와 Font Awesome을 불러와 매우 기본적인 HTML 문서를 생성합니다. 또한 Bulma CSS 프레임워크에서 제공하는 간단한 CSS 규칙을 적용합니다.
다음을 여세요 URL 브라우저에서: http://localhost:3000/. 다음이 표시되어야 합니다.
좋습니다, 홈페이지 수정에 성공했습니다. 이제 다음으로 라우트를 정의해 보겠습니다. 우리 애플리케이션에 회사 소개 페이지도 표시해야 한다고 가정해 봅시다.
경로 생성
`application/config/routes.php` 파일을 열고 다음 경로를 추가하세요.
$route['about-us'] = 'welcome/about_us';
이리:
- 방문객이 방문할 때 URL /about-us에서 안내드립니다. CodeIgniter는 Welcome 컨트롤러를 찾고 about_us 메서드를 실행합니다.
컨트롤러 생성
이제 about_us 컨트롤러 메서드를 정의해 보겠습니다. application/controllers/Welcome.php 파일을 열고 다음 메서드를 추가하세요.
public function about_us(){
$this->load->view('about_us');
}
이리:
- 위 코드는 about_us라는 함수를 정의하고 about_us 뷰를 로드합니다.
보기 만들기
이제 방금 참조한 뷰를 만들어 보겠습니다. application/views/about_us.php 경로에 about_us.php라는 새 파일을 생성하고 다음 코드를 추가하세요.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> About us yap... </h1> </div> </section> </body> </html>
준비 완료되었습니다. 다음을 열어주세요. URL 웹 브라우저에서: http://localhost:3000/index.php/about-us다음 페이지가 표시됩니다.
위 페이지가 보이신다면 축하합니다. 간단한 애플리케이션을 성공적으로 만드셨습니다. Code점화기.




