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