FuelPHP - Lượt xem

Viewlà lớp trình bày của ứng dụng MVC. Nó tách logic ứng dụng khỏi logic trình bày. Khi đó, khi bộ điều khiển cần tạo HTML, CSS hoặc bất kỳ nội dung nào khác, bộ điều khiển sẽ chuyển tiếp tác vụ tới công cụ xem.

FuelPHP cung cấp một lớp đơn giản và linh hoạt, View với tất cả các tính năng cần thiết của một công cụ xem. Lớp xem hỗ trợ kết xuất tệp dạng xem. Tệp xem là một trang HTML với các hướng dẫn PHP được nhúng. Các biến của tệp dạng xem có thể được đặt bằng cách sử dụng lớp Xem dưới dạng mảng PHP và được tham chiếu trong tệp dạng xem bằng khóa của mảng. Hãy để chúng tôi kiểm tra một số phương thức quan trọng của lớp View.

làm giả

  • Purpose - Tạo một đối tượng View mới

  • Parameter - Sau đây là các thông số

    • $file - Đường dẫn của tệp chế độ xem liên quan đến thư mục chế độ xem, nhiên liệu / ứng dụng / chế độ xem

    • $data - Mảng giá trị

    • $filter - Đặt mã hóa tự động, mặc định cho cài đặt trong tệp cấu hình chính

  • Returns - Bản sao của chế độ xem

Ví dụ,

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

Bộ lọc tự động

  • Purpose - Đặt có mã hóa dữ liệu hay không

  • Parameter - Sau đây là thông số

    • $filter - true / false

  • Returns - Đối tượng xem hiện tại

Ví dụ,

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

set_filename

  • Purpose - Cho phép thiết lập hoặc thay đổi tập tin xem.

  • Parameter - Sau đây là tham số -

    • $file - Đường dẫn để xem tệp liên quan đến thư mục chế độ xem, nhiên liệu / ứng dụng / chế độ xem

  • Returns - Đối tượng xem hiện tại

Ví dụ,

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

bộ

  • Purpose - Đặt giá trị của một hoặc nhiều biến

  • Parameter - Sau đây là các thông số

    • $key - Tên biến hoặc mảng giá trị

    • $value - Giá trị / null

    • $filter - Cài đặt mã hóa, đúng / sai

  • Returns - Đối tượng xem hiện tại

Ví dụ,

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

set_global

set_global tương tự như set, ngoại trừ việc nó áp dụng cho tất cả các chế độ xem và các biến đều có thể truy cập được bởi tất cả các chế độ xem. Đây là một phương thức tĩnh.

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

set_safe

  • Purpose - Đặt giá trị của một hoặc nhiều biến khi bật mã hóa an toàn.

  • Parameter - Sau đây là các thông số -

    • $key - Tên biến hoặc mảng giá trị

    • $value - Giá trị / null

  • Returns - Đối tượng xem hiện tại

Ví dụ,

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

được

  • Purpose - Nhận giá trị của một hoặc nhiều biến

  • Parameter - Sau đây là các thông số

    • $key - Tên biến

    • $default - Giá trị mặc định được trả lại nếu không tìm thấy khóa

  • Returns - Giá trị của khóa đầu vào

Ví dụ,

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

kết xuất

  • Purpose - Kết xuất các tệp xem thành chuỗi bằng cách hợp nhất nó với các biến cục bộ và toàn cục

  • Parameter - Sau đây là các thông số -

    • $file - Tên tệp xem

  • Returns - Tệp xem được kết xuất dưới dạng chuỗi

Ví dụ,

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

Tạo chế độ xem

Để hiểu các khung nhìn, chúng ta hãy sửa đổi phương thức hành động, action_show của controller, Controller_Eaffee .

nhân viên.php

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

Bây giờ, hãy tạo một thư mục nhân viên trong thư mục views, đặt tại fuel / app / views . Sau đó, tạo một tệp show.php bên trong thư mục nhân viên và thêm mã sau.

show.php

<h3> My first view </h3>

Bây giờ, hãy yêu cầu url http: // localhost: 8080 / worker / show và nó cho kết quả như sau.

Truyền dữ liệu để xem

Chúng ta có thể truyền dữ liệu đến các khung nhìn bằng cách sử dụng các phương thức View như đã thảo luận trước đó. Sau đây là một ví dụ đơn giản.

nhân viên.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); 
   } 
}

Bây giờ, hãy thêm các thay đổi trong view tập tin.

show.php

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

Sau khi yêu cầu URL, nó sẽ hiển thị tên và công việc như sau:

Xem bộ lọc

Chế độ xem sử dụng mã hóa đầu ra để chuyển bất kỳ thứ gì bạn muốn. Nếu bạn muốn chuyển dữ liệu chưa được lọc, chúng ta có thể sử dụng phương pháp set.

nhân viên.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; 
   } 
}

Sau khi yêu cầu URL, nó sẽ hiển thị chi tiết công việc theo kiểu nhấn mạnh, như sau.

Chế độ xem lồng nhau

FuelPHP hỗ trợ các chế độ xem lồng nhau. Trong các dạng xem lồng nhau, một dạng xem có thể chứa một hoặc nhiều dạng xem. Để thiết lập các khung nhìn trong một khung nhìn khác, chúng ta có thể sử dụng phương thức kết xuất như sau.

nhân viên.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(); 
   } 
}

Nhiên liệu / ứng dụng / lượt xem / layout.php

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

Nhiên liệu / ứng dụng / lượt xem / head.php

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

Nhiên liệu / ứng dụng / lượt xem / nhân viên / show.php

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

Sau khi yêu cầu URL, http: // localhost: 8080 / worker / nestedview và kiểm tra chế độ xem nguồn, nó sẽ đưa ra mã sau.

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

Bộ điều khiển mẫu

FuelPHP cung cấp một bộ điều khiển, Controller_Template với khái niệm bố cục tích hợp. Khái niệm bố cục được thực hiện bằng cách sử dụngbefore()after()phương pháp của Controller. Để sử dụng bộ điều khiển mẫu, chúng ta cần mở rộng bộ điều khiển bằng Controller_Template thay vì Bộ điều khiển. Trong khi sử dụng phương thức after () / before (), chúng ta cần gọi parent :: before và parent :: after, nếu không, mẫu sẽ bị hỏng.

<?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

Nó là một tệp mẫu mặc định trong Fuel. Tệp mẫu được sử dụng để gọi JS, CSS, HTML và gọi các thành phần chế độ xem. Nó được đặt tạifuel/app/views/. Các mẫu được sử dụng để bao bọc chế độ xem của bạn trong một bố cục có đầu trang, chân trang, thanh bên, v.v. Chúng ta có thể thay đổi mẫu mặc định bằng cách sử dụng biến $ template trong phương thức hành động như sau.

Nhiên liệu / ứng dụng / lớp / bộ điều khiển / 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'); 
      } 
   }

Nhiên liệu / ứng dụng / lượt xem / 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>

Bây giờ, hãy yêu cầu URL http: // localhost: 8080 / test và nó cho kết quả như sau.

Kết quả

<!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>

Tạo trang xem

Bạn có thể tạo trang xem bằng bảng điều khiển Dầu của Fuel. Sau đây là cú pháp cơ bản.

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

Để tạo bộ điều khiển quản trị với trang chủ và trang đăng nhập, hãy sử dụng lệnh sau.

oil g controller admin home login

Kết quả

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