12월 21, 2021

정적 페이지 2

참고:이 자습서에서는 코드 시그널러를 다운로드하여 개발 환경에 프레임워크를 설치했다고 가정합니다.

가장 먼저 할 일은 컨트롤러를 수동 페이지로 설정하는 것입니다. 컨트롤러는 단순히 위임하는 데 도움이 되는 클래스입니다 work.It 웹 응용 프로그램의 접착제입니다.

예를 들어,전화를 걸 때:

우리는”뉴스”라는 컨트롤러가 있다고 상상할 수 있습니다. 뉴스를 호출하는 방법은”최신”이 될 것입니다. 뉴스 방법의 작업은 10 개의 뉴스 항목을 그랩하여 페이지에 렌더링 할 수 있습니다. 다음과 같은 패턴을 볼 수 있습니다:

더 복잡 해짐에 따라 변경 될 수 있습니다. 그러나 지금은 이것이 우리가 알아야 할 전부입니다.

응용 프로그램/컨트롤러/페이지에서 파일을 만듭니다.이 코드는 다음과 같습니다.

<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}

$page라는 하나의 인수를 받아들이는 뷰 메서드를 사용하여Pages라는 클래스를 만들었습니다. Pages클래스가CI_Controller클래스를 확장하고 있습니다. 즉,새 페이지 클래스가CI_Controller클래스(시스템/코어/컨트롤러)에 정의 된 방법 및 변수에 액세스 할 수 있습니다.2018 년

컨트롤러는 웹 응용 프로그램에 대한 모든 요청의 중심이 될 것입니다. 매우 기술적 인 코드 시그너터 토론에서,그것은 아마도 슈퍼 객체라고 불릴 것입니다. 모든 클래스와 마찬가지로 컨트롤러 내에서$this을 참조하십시오. $this을 참조하면 라이브러리,뷰를로드하고 일반적으로 프레임 워크를 명령하는 방법입니다.

이제 첫 번째 방법을 만들었습니다. 우리는 다음과 같이 작동하는 두 개의”보기”(페이지 템플릿)를 만들 것입니다.우리의 페이지 바닥 글 및 머리글.

응용 프로그램/뷰/템플릿/헤더에 헤더를 만듭니다.다음 코드:

<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>

이 코드는 기본 뷰와 함께 기본 뷰를 로드하기 전에 표시합니다. 또한$title변수를 출력합니다.이 변수는 나중에 컨트롤러에서 정의 할 것입니다.이제 응용 프로그램/보기/템플릿/바닥 글에 바닥 글을 만듭니다.다음 코드를 포함합니다:

 <em>&copy; 2015</em> </body></html>

컨트롤러에 논리 추가

앞에서view()메서드로 컨트롤러를 설정합니다. 메서드는 로드할 페이지의 이름인 하나의 매개 변수를 허용합니다. 정적 페이지 템플릿은 응용 프로그램/보기/페이지/디렉토리에 있습니다.

해당 디렉터리에 홈이라는 두 개의 파일을 만듭니다.에 대한.당신이 원하는 무엇이든−−그 파일 내에서 텍스트를 입력하고 저장합니다.당신은 특히 유엔 원본으로 좋아하는 경우에,”안녕하세요!”.

해당 페이지를 로드하려면 요청된 페이지가 실제로 있는지 확인해야 합니다:

public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}

이제 페이지가 존재할 때 헤더 및 푸터를 포함하여로드되어 사용자에게 표시됩니다. 페이지가 존재하지 않으면”404 페이지를 찾을 수 없음”오류가 표시됩니다.

이 메서드의 첫 번째 줄은 페이지가 실제로 존재하는지 확인합니다.이 함수는 파일이 예상 위치인지 여부를 확인하는 데 사용됩니다. show_404()은 기본 오류 페이지를 렌더링하는 기본 제공 코드 자식 함수입니다.

헤더 템플릿에서$title변수를 사용하여 페이지 제목을 사용자 정의했습니다. 제목 값은 이 메서드에서 정의되지만 변수에 값을 할당하는 대신$data배열의 제목 요소에 할당됩니다.

마지막으로 수행해야 할 작업은 순서대로 뷰를로드하는 것입니다. view()메서드의 두 번째 매개 변수는 뷰에 값을 전달하는 데 사용됩니다. $data배열의 각 값은 해당 키의 이름을 가진 변수에 할당됩니다. 따라서 컨트롤러의$data값은 뷰의$title와 같습니다.

라우팅하기

컨트롤러가 작동 중입니다! 페이지를 보려면 브라우저를index.php/pages/view로 가리킵니다. 당신이 방문 할 때index.php/pages/view/about당신은 다시 머리글과 바닥 글을 포함,정보 페이지를 볼 수 있습니다.

사용자 지정 라우팅 규칙을 사용하면 모든 컨트롤러와 메서드에 모든 우리당을 매핑하고 일반 규칙에서 벗어날 수 있습니다:http://example.com///

해봅시다. 에있는 라우팅 파일을 엽니 다.응용 프로그램/구성/경로.다음 두 줄을 추가하십시오.$route배열의 요소를 설정하는 다른 모든 코드를 제거합니다.

$route = 'pages/view';$route = 'pages/view/';

코드 지정자는 라우팅 규칙을 위에서 아래로 읽고 첫 번째 일치 규칙으로 라우팅합니다. 각 규칙은 슬래시(오른쪽)로 구분 된 컨트롤러 및 메소드 이름에 매핑 된 정규 표현식(왼쪽)입니다. 요청이 들어오면 첫 번째 일치를 찾고 해당 컨트롤러와 메서드를 호출할 수 있습니다.

라우팅에 대한 자세한 내용은 라우팅문서에서 확인할 수 있습니다.

여기서$route배열의 두 번째 규칙은 와일드카드 문자열(:any)을 사용하는 모든 요청과 일치합니다. 그리고 매개 변수를Pages클래스의view()메서드에 전달합니다.

지금 방문index.php/about. 페이지 컨트롤러의view()메소드로 올바르게 라우팅 되었습니까? 최고!

답글 남기기

이메일 주소는 공개되지 않습니다.