FuelPHP-조회수

ViewMVC 애플리케이션의 표현 계층입니다. 애플리케이션 로직과 프리젠 테이션 로직을 분리합니다. 컨트롤러가 HTML, CSS 또는 기타 콘텐츠를 생성해야 할 때 작업을 뷰 엔진으로 전달합니다.

FuelPHP는보기 엔진에 필요한 모든 기능을 갖춘 간단하고 유연한 클래스 인 View를 제공합니다. 뷰 클래스는 뷰 파일의 렌더링을 지원합니다. 파일보기는 PHP 지침이 포함 된 HTML 페이지입니다. 뷰 파일의 변수는 View 클래스를 PHP 배열로 사용하여 설정하고 배열의 키를 사용하여 뷰 파일에서 참조 할 수 있습니다. View 클래스의 중요한 메서드 몇 가지를 살펴 보겠습니다.

단조 공장

  • Purpose − 새로운 View 객체 생성

  • Parameter − 다음은 매개 변수입니다.

    • $file −보기 폴더, fuel / app / views에 상대적인보기 파일의 경로

    • $data − 값 배열

    • $filter − 자동 인코딩 설정, 기본 구성 파일의 설정 기본값

  • Returns −보기의 인스턴스

예를 들어

$view = View::forge ('path/to/view', array( 
   'title' => "Show employee, 
   'employees' => $employees, 
));

auto_filter

  • Purpose − 데이터 인코딩 여부 설정

  • Parameter − 다음은 매개 변수입니다.

    • $filter − 참 / 거짓

  • Returns − 현재보기 개체

예를 들면

$view->auto_filter(); 
$view = $view->auto_filter(false);

set_filename

  • Purpose −보기 파일을 설정하거나 변경할 수 있습니다.

  • Parameter − 다음은 매개 변수입니다.

    • $file −보기 폴더, 연료 / 앱 /보기와 관련된보기 파일 경로

  • Returns − 현재보기 개체

예를 들어

$view = new View();
$view>set_filename('path/to/view');

세트

  • Purpose − 하나 이상의 변수 값 설정

  • Parameter − 다음은 매개 변수입니다.

    • $key − 변수 이름 또는 값 배열

    • $value − 값 / null

    • $filter − 인코딩 설정, 참 / 거짓

  • Returns − 현재보기 개체

예를 들어

$view = new View(); 
$view->set(array('name' => 'Jon'));

set_global

set_global은 다음과 유사합니다. set단, 모든보기에 적용되고 모든보기에서 변수에 액세스 할 수 있다는 점을 제외하고는 이것은 정적 방법입니다.

View::set_global('name', 'Jon', false);

set_safe

  • Purpose − 안전한 인코딩을 사용하여 하나 이상의 변수 값을 설정합니다.

  • Parameter − 다음은 매개 변수입니다 −

    • $key − 변수 이름 또는 값 배열

    • $value − 값 / null

  • Returns − 현재보기 개체

예를 들어

$view = new View(); 
$view->set_safe(array('name' => 'Jon'), null);

가져 오기

  • Purpose − 하나 이상의 변수 값 얻기

  • Parameter − 다음은 매개 변수입니다.

    • $key − 변수 이름

    • $default − 키를 찾을 수없는 경우 반환되는 기본값

  • Returns − 입력 키의 값

예를 들어

$view = new View(); 
$name = $view>get('name');  // name = 'Jon'

세우다

  • Purpose − 뷰 파일을 로컬 및 글로벌 변수와 병합하여 문자열로 렌더링

  • Parameter − 다음은 매개 변수입니다 −

    • $file −보기 파일 이름

  • Returns − 렌더링 된 뷰 파일 (문자열)

예를 들면

$html = View::forge()->render('/path/to/view');

보기 만들기

뷰를 이해하기 위해 컨트롤러의 action_show , Controller_Employee 액션 메서드를 수정 해 보겠습니다 .

employee.php

<?php  
   class Controller_Employee extends Controller { 
      public function action_show() {
         return View::forge('employee/show'); 
      } 
   }

이제 fuel / app / views 에있는보기 디렉토리에 employee 폴더를 작성하십시오 . 그런 다음 employee 폴더 안에 show.php 파일을 만들고 다음 코드를 추가합니다.

show.php

<h3> My first view </h3>

이제 http : // localhost : 8080 / employee / show URL을 요청 하면 다음과 같은 결과가 생성됩니다.

보기에 데이터 전달

앞에서 설명한대로 View 메서드를 사용하여 뷰에 데이터를 전달할 수 있습니다. 다음은 간단한 예입니다.

employee.php

class Controller_Employee extends Controller { 
   public function action_show() { 
      $data = array(); //stores variables going to views 
      $data['name'] = ‘Jon’; 
      $data[‘job’] = ‘Designer’;  
      
      //assign the view to browser output 
      return View::forge('employee/show', $data); 
   } 
}

이제 변경 사항을 view 파일.

show.php

<html> 
   <body> 
      Hello, <?php echo $name; ?>. 
      Your job is, <?php echo $job; ?>. 
   </body> 
</html>

URL을 요청하면 다음과 같이 이름과 작업이 표시됩니다.

필터보기

뷰는 출력 인코딩을 사용하여 원하는 것을 전달합니다. 필터링되지 않은 데이터를 전달하려면 set 메서드를 사용할 수 있습니다.

employee.php

class Controller_Employee extends Controller { 
   public function action_show() { 
      $view = \View::forge('employee/show'); 
      $view->set('name', 'Jon', true); 
      $view->set('job', '<em>Designer</em>', false); 
      return $view; 
   } 
}

URL을 요청하면 다음과 같이 강조 스타일로 작업 세부 정보가 표시됩니다.

내포 된 뷰

FuelPHP는 중첩 된 뷰를 지원합니다. 중첩 된보기에서보기는 하나 이상의보기를 포함 할 수 있습니다. 다른 뷰에서 뷰를 설정하려면 다음과 같이 render 메서드를 사용할 수 있습니다.

employee.php

class Controller_Employee extends Controller { 
   public function action_nestedview() { 
      
      //assign variables 
      $data = array(); 
      $data['title'] = 'Home';  
      $data['name'] = 'Jon'; 
      $data['job'] = 'Designer';  
      $views = array(); 
      $views['head'] = View::forge('head', $data)->render(); 
      $views['content'] = View::forge('employee/show', $data)->render();  
      return View::forge('layout', $views, false)->render(); 
   } 
}

fuel / app / views / layout.php

<html> 
   <head> 
      <?php echo $head; ?> 
   </head> 
   
   <body> 
      <?php echo $content; ?> 
   </body> 
</html>

fuel / app / views / head.php

<title>
   <?php echo $title; ?>
</title>

fuel / app / views / employee / show.php

Hello, <?php echo $name; ?>. 
Your job is, <?php echo $job; ?>.

URL http : // localhost : 8080 / employee / nestedview를 요청 하고 소스 뷰를 확인한 후 다음 코드를 제공합니다.

<html> 
   <head> 
      <title>Home</title> 
   </head> 
   
   <body> 
      Hello, Jon. 
      Your job is, Designer. 
   </body> 
</html>

템플릿 컨트롤러

FuelPHP는 레이아웃 개념이 내장 된 컨트롤러 Controller_Template을 제공합니다. 레이아웃 개념은before()after()컨트롤러의 방법. 템플릿 컨트롤러를 사용하려면 Controller 대신 Controller_Template을 사용하여 컨트롤러를 확장해야합니다. after () / before () 메서드를 사용하는 동안 parent :: before 및 parent :: after를 호출해야합니다. 그렇지 않으면 템플릿이 중단됩니다.

<?php 
   class Controller_Test extends Controller_Template { 
      public function before() { 
         parent::before(); 
         // do stuff 
      } 
        
      public function after($response) { 
         $response = parent::after($response); 
         
         // do stuff 
         return $response; 
      } 
   }

template.php

Fuel의 기본 템플릿 파일입니다. 템플릿 파일은 JS, CSS, HTML을 호출하고 뷰 부분을 호출하는 데 사용됩니다. 그것은에 있습니다fuel/app/views/. 템플릿은 헤더, 푸터, 사이드 바 등이있는 레이아웃에서 뷰를 감싸는 데 사용됩니다. 다음과 같이 action 메서드에서 $ template 변수를 사용하여 기본 템플릿을 변경할 수 있습니다.

fuel / app / classes / controller / test.php

<?php  
   class Controller_Test extends Controller_Template { 
      public $template = 'template_test'; 
      public function action_index() { 
         $this->template->title = 'Example Page'; 
         $this->template->content = View::forge('test/index'); 
      } 
   }

fuel / app / views / template_test.php

<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title><?php echo $title; ?></title> 
      <?php echo Asset::css('bootstrap.css'); ?> 
   </head> 

   <body> 
      <div> 
         <?php echo $content; ?>
      </div> 
   </body> 
</html>

fuel / app / views / test / index.php

<h3>My Test page</h3>

이제 URL http : // localhost : 8080 / test를 요청 하면 다음과 같은 결과가 생성됩니다.

결과

<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title>Example Page</title> 
      <link type = "text/css" rel = "stylesheet" 
         href = "http://localhost:8080/assets/css/bootstrap.css?1464964766" />
   </head> 
   
   <body> 
      <div> 
         <h3>My Test page</h3> 
      </div> 
   </body> 
</html>

보기 페이지 생성

Fuel 's Oil 콘솔을 사용하여보기 페이지를 생성 할 수 있습니다. 다음은 기본 구문입니다.

oil g controller <controller-name> <page1> <page2> ..

홈 및 로그인 페이지가있는 관리자 컨트롤러를 생성하려면 다음 명령을 사용하십시오.

oil g controller admin home login

결과

Creating view: /path/to/app/fuel/app/views/admin/home.php 
Creating view: /path/to/app/fuel/app/views/admin/login.php 
Creating controller: /path/to/app/fuel/app/classes/controller/admin.php