FuelPHP - มุมมอง
Viewเป็นเลเยอร์การนำเสนอของแอปพลิเคชัน MVC มันแยกตรรกะของแอปพลิเคชันออกจากตรรกะการนำเสนอ เมื่อคอนโทรลเลอร์ต้องการสร้าง HTML, CSS หรือเนื้อหาอื่น ๆ ตัวควบคุมจะส่งต่องานไปยังเอ็นจินมุมมอง
FuelPHP มีคลาสที่เรียบง่ายและยืดหยุ่นดูพร้อมคุณสมบัติที่จำเป็นทั้งหมดของเอ็นจิ้นมุมมอง คลาส View รองรับการเรนเดอร์ไฟล์วิว ดูไฟล์เป็นหน้า HTML ที่มีคำแนะนำ PHP ในตัว ตัวแปรของไฟล์มุมมองสามารถตั้งค่าได้โดยใช้คลาส View เป็นอาร์เรย์ PHP และอ้างอิงในไฟล์มุมมองโดยใช้คีย์ของอาร์เรย์ ให้เราตรวจสอบวิธีการที่สำคัญบางอย่างของคลาส View
ปลอม
Purpose - สร้างวัตถุมุมมองใหม่
Parameter - ต่อไปนี้เป็นพารามิเตอร์
$file - เส้นทางของไฟล์มุมมองที่สัมพันธ์กับโฟลเดอร์มุมมองเชื้อเพลิง / แอป / มุมมอง
$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
staff.php
<?php
class Controller_Employee extends Controller {
public function action_show() {
return View::forge('employee/show');
}
}
ตอนนี้สร้างเป็นพนักงานโฟลเดอร์ในไดเรกทอรีวิวตั้งอยู่ที่น้ำมันเชื้อเพลิง / app / มุมมอง จากนั้นสร้างไฟล์show.phpภายในโฟลเดอร์พนักงานและเพิ่มรหัสต่อไปนี้
show.php
<h3> My first view </h3>
ตอนนี้ขอ url http: // localhost: 8080 / workers / showและสร้างผลลัพธ์ต่อไปนี้
ส่งผ่านข้อมูลไปดู
เราสามารถส่งข้อมูลไปยังมุมมองโดยใช้วิธีการดูตามที่กล่าวไว้ก่อนหน้านี้ ต่อไปนี้เป็นตัวอย่างง่ายๆ
staff.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 แล้วจะแสดงชื่อและงานดังนี้ -
ดูตัวกรอง
มุมมองใช้การเข้ารหัสเอาต์พุตเพื่อส่งผ่านสิ่งที่คุณต้องการ หากคุณต้องการส่งผ่านข้อมูลที่ไม่มีการกรองเราสามารถใช้วิธีการตั้งค่า
staff.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 รองรับมุมมองที่ซ้อนกัน ในมุมมองที่ซ้อนกันมุมมองสามารถมีได้ตั้งแต่หนึ่งมุมมองขึ้นไป ในการตั้งค่ามุมมองในมุมมองอื่นเราสามารถใช้วิธีการแสดงผลได้ดังนี้
staff.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();
}
}
เชื้อเพลิง / app / views / layout.php
<html>
<head>
<?php echo $head; ?>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
เชื้อเพลิง / app / views / head.php
<title>
<?php echo $title; ?>
</title>
เชื้อเพลิง / แอป / มุมมอง / พนักงาน / show.php
Hello, <?php echo $name; ?>.
Your job is, <?php echo $job; ?>.
หลังจากขอ URL http: // localhost: 8080 / workers / nestedviewและตรวจสอบมุมมองต้นทางจะให้รหัสต่อไปนี้
<html>
<head>
<title>Home</title>
</head>
<body>
Hello, Jon.
Your job is, Designer.
</body>
</html>
ตัวควบคุมเทมเพลต
FuelPHP มีคอนโทรลเลอร์ Controller_Template พร้อมแนวคิดเค้าโครงในตัว แนวคิดเค้าโครงทำได้โดยใช้before() และ after()วิธีการควบคุม ในการใช้ตัวควบคุมเทมเพลตเราจำเป็นต้องขยายคอนโทรลเลอร์โดยใช้ Controller_Template แทน Controller ในขณะที่ใช้เมธอด 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/. เทมเพลตใช้เพื่อรวมมุมมองของคุณในเค้าโครงด้วยส่วนหัวส่วนท้ายแถบด้านข้าง ฯลฯ เราสามารถเปลี่ยนเทมเพลตเริ่มต้นโดยใช้ตัวแปร $ template ในวิธีการดำเนินการดังนี้
เชื้อเพลิง / app / class / 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');
}
}
เชื้อเพลิง / 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>
เชื้อเพลิง / 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 ต่อไปนี้เป็นไวยากรณ์พื้นฐาน
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