CodeIgniter 컨트롤러, 뷰 라우팅: 예제를 통해 배우기

⚡ 스마트 요약

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

  • 🧭 라우팅 : 경로는 일치합니다 URL 컨트롤러 메서드에 대해, 그리고 일치하지 않는 URL 페이지를 찾을 수 없다는 오류가 발생합니다.
  • 🎛️ 컨트롤러 : 컨트롤러 메서드는 라우트에 응답하여 데이터를 요청하고 뷰를 반환합니다.
  • 🖼️ 조회 수 : 뷰는 HTML, CSS 및 기타 요소를 결합합니다. Java사용자에게 결과를 표시하는 스크립트입니다.
  • 📦 프로젝트 설정 : Composer는 프로젝트를 생성하고 내장된 PHP 서버는 해당 프로젝트를 로컬에서 실행합니다.
  • 🏠 기본 경로: default_controller는 홈페이지를 설정하고, 404_override는 사용자 지정 오류 페이지를 설정합니다.
  • 사용자 지정 경로: 'about-us'와 같은 경로는 Welcome 컨트롤러의 about_us 메서드에 매핑됩니다.
  • 🔁 전체 흐름: URL 컨트롤러에서 뷰로, 뷰에서 HTML로, 다시 브라우저로 라우팅하는 방식입니다.

Code점화기 컨트롤러 및 보기

이 튜토리얼에서는 다음 주제들을 배우게 됩니다.

  • 라우팅 라우팅은 응답을 담당합니다. 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이라는 디렉터리에 설치했습니다.

명령 실행이 완료되면 터미널에 다음과 유사한 결과가 표시됩니다.

새로운 작품을 만드는 작곡가 Code이그나이터 프로젝트

다음 명령어를 실행하여 새로 생성된 프로젝트 디렉토리 ci-app으로 이동하세요.

cd ci-app

이제 PHP 내장 웹 서버를 시작하세요.

php -S localhost:3000

이리:

  • 위 명령어는 내장 PHP 서버를 3000번 포트에서 실행합니다.

웹 브라우저를 열고 다음 주소로 이동하세요. URL: http://localhost:3000/다음 페이지가 표시됩니다.

CodeIgniter 기본 환영 페이지

위 페이지가 보이시면 설치가 성공적으로 완료된 것입니다. 축하합니다! 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/. 다음이 표시되어야 합니다.

관습 Code이그나이터 홈페이지

좋습니다, 홈페이지 수정에 성공했습니다. 이제 다음으로 라우트를 정의해 보겠습니다. 우리 애플리케이션에 회사 소개 페이지도 표시해야 한다고 가정해 봅시다.

경로 생성

`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다음 페이지가 표시됩니다.

CodeIgniter 회사 소개 페이지

위 페이지가 보이신다면 축하합니다. 간단한 애플리케이션을 성공적으로 만드셨습니다. Code점화기.

자주 묻는 질문

경로 입력 지도 URL 'welcome/about_us'와 같이 컨트롤러와 메서드로 연결되는 세그먼트입니다. URL 요청되었습니다. CodeIgniter는 이름이 지정된 메서드를 실행하여 뷰를 로드하고 반환합니다.

특정 컨트롤러가 지정되지 않은 경우 사이트 루트를 처리하는 컨트롤러를 설정합니다. URL 예시에서 'welcome'은 Welcome 컨트롤러의 index 메서드를 통해 홈페이지가 제공된다는 것을 의미합니다.

아니요. `php -S localhost:3000` 명령어로 시작하는 내장 PHP 서버만으로도 로컬 환경에서 예제를 실행하기에 충분합니다. Apache나 Nginx는 프로덕션 환경에 배포할 때만 필요합니다.

네. 페이지 설명만으로 AI는 라우트 진입점, 컨트롤러 메서드, 그리고 그에 맞는 뷰를 작성할 수 있습니다.ping 이름이 일치합니다. 경로를 확인하세요. Code이그나이터 버전.

이 예에서는 다음을 사용합니다. CodeIgniter 3는 컨트롤러와 뷰를 application/ 아래에 저장합니다. CodeIgniter 4에서는 디렉터리와 네임스페이스 구조가 재구성되었으므로 최신 프로젝트에서는 경로와 구문이 다릅니다.

이 게시물을 요약하면 다음과 같습니다.