Chế độ xem trả lại FuelPHP

Thật sự là lần này khá là khát chủ đề, mãi mới nghĩ ra cái này để viết, hy vọng nó sẽ giúp ích cho những bạn đang làm việc với framework khá ít sao của PHP. đó chính là FuelPHP

FuelPHP là một framework đơn giản, tinh tế (theo lời các bác viết ra nó nói thế) và bằng sự kết hợp với Twig (một engine tempalte giống như blade trong laravel) sẽ hỗ trợ bạn khá nhiều trong việc lập trình trên framework . Nó giúp bạn nhúng mã PHP vào trong chế độ xem, hoặc giúp tạo ra các bố cục chính để những chế độ xem khác kế thừa chúng. Đó, chỉ đơn giản là thôi =)))

I. Chuẩn bị

  • Clone project Fuel về để test thể hiện. Hướng dẫn đây
  • Với Fuel có nhiều động cơ có thể sử dụng được, hôm nay chúng ta đề cập đến Twig. Xem qua týp. Bạn chỉ cần thêm vào phần
    ...
    new Twig_SimpleFunction('is_active', function ($router) {
        return isActive($router);
    }),
    ...
    
    2 trong tệp
    ...
    new Twig_SimpleFunction('is_active', function ($router) {
        return isActive($router);
    }),
    ...
    
    3 rồi sau đó chạy
    ...
    new Twig_SimpleFunction('is_active', function ($router) {
        return isActive($router);
    }),
    ...
    
    4 để tải được nó về dự án
  • Create a controller to test (controler mình tạo ra được mở rộng từ Controller)

II. Ví dụ

OK, sau khi cài đặt composer hãy vào nhà cung cấp, và twig của bạn nằm trong đó đó. Các bạn cũng nên tìm hiểu về nó trên trang chủ

Chế độ xem trả lại FuelPHP
Sau đây mình tạo ra một bố cục và một chế độ xem được kế thừa từ nó
Chế độ xem trả lại FuelPHP
(1) ở đây mình .

Twig hỗ trợ chúng tôi một vài hàm cơ bản, ví dụ như chúng ta sử dụng hàm lang để lấy ra các văn bản được định nghĩa trong tệp lang của dự án, hoặc như hàm asset_js sẽ lấy các tệp js từ public/assets

Nhưng sẽ thế nào khi bạn muốn tự viết thêm các hàm để dễ sử dụng cho dự án của mình. Mình đơn cử, nhiều lúc trong view bạn muốn check xem sự tồn tại của biến nào hay không, trong trường hợp này bạn sẽ làm thế nào ??? . Trong thư mục

...
  • ...
    0 bạn tạo ra tệp
    ...
    
  • ...
    1 và khai báo nó trong
    ...
    
  • ...
    2

    Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

    Lượt xem là các tệp trình bày dữ liệu cho trình duyệt. Các tệp này cho phép tách logic và trình bày cho ứng dụng của bạn. Chế độ xem thường là html, javascript hoặc css nhưng có thể chứa các biến được truyền vào chúng từ bộ điều khiển

    Tạo chế độ xem

    Trong FuelPHP, Chế độ xem được đặt trong thư mục APPPATH/lượt xem. Lượt xem có thể được đặt trong thư mục con. Các lượt xem được đặt tên theo đường dẫn thư mục của chúng từ Fuel/app/views và tên tệp, do đó, một tệp dạng xem nằm ở Fuel/app/views/user/join. php sẽ được đặt tên là người dùng/tham gia

    Ví dụ

    
    	
    		
    	
    	
    		Welcome, .
    	
    
    

    Sử dụng chế độ xem

    Chế độ xem trong khung Nhiên liệu rất linh hoạt. Bạn có thể tạo một chế độ xem duy nhất và lồng các chế độ xem trong các chế độ xem khác. Điều này có thể được thực hiện theo nhiều cách

    Chế độ xem ví dụ (nhiên liệu/ứng dụng/lượt xem/trang chủ/chỉ mục. php)

    
    	
    		
    	
    	
    		Welcome, .
    	
    
    

    Phương pháp 1 (sử dụng chế độ xem ví dụ ở trên)

    class Controller_Home extends Controller
    {
    	public function action_index()
    	{
    		$data = array(); //stores variables going to views
    
    		$data['username'] = 'Joe14';
    		$data['title'] = 'Home';
    
    		//assign the view to browser output
    		return View::forge('home/index', $data);
    	}
    }

    Phương pháp 2 (sử dụng chế độ xem ví dụ ở trên)

    class Controller_Home extends Controller
    {
    	public function action_index()
    	{
    		//create the view
    		$view = View::forge('home/index');
    
    		//assign variables for the view
    		$view->username = 'Joe14';
    		$view->title = 'Home';
    
    		//another way to assign variables for the view
    		$view->set('username', 'Joe14');
    		$view->set('title', 'Home');
    
    		//assign the view to browser output
    		return $view;
    	}
    }

    Bảo vệ

    Chế độ xem sử dụng mã hóa đầu ra để làm sạch mọi thứ bạn chuyển cho chúng. Trong cài đặt mặc định, phương pháp bảo mật Bảo mật. htmlentities() được định nghĩa là bộ lọc đầu ra. Bạn có thể sửa đổi các bộ lọc trong cấu hình ứng dụng của mình. tập tin php. Nếu bạn muốn truyền nội dung nào đó chưa được lọc, bạn có thể sử dụng phương thức set($name, $value, false)

    class Controller_Example extends Controller
    {
    	public function action_index()
    	{
    		$view = \View::forge('example');
    
    		// add it filtered, outputs: not bold because filtered
    		$view->title = 'not bold because filtered';
    
    		// add it unfiltered, outputs:  bold because unfiltered
    		$view->set('title', ' bold because unfiltered', false);
    
    		// or use the set_safe() method, which is identical to set() but defaults to 'false'
    		$view->set_safe('title', ' bold because unfiltered');
    
    		return $view;
    	}
    }

    Nếu bạn không muốn Chế độ xem của mình hoạt động như thế này, bạn có thể chuyển false làm đối số thứ ba Chế độ xem. forge() Bây giờ mọi thứ được thêm vào đối tượng Chế độ xem này sẽ không được lọc. Nếu sau đó bạn muốn một số giá trị được lọc, bạn có thể sử dụng set($name, $value, true)
    Bạn cũng có thể vô hiệu hóa bộ lọc đầu ra trên toàn cầu bằng cách đặt bảo mật giá trị cấu hình ứng dụng. auto_filter_output thành false. Vì lý do bảo mật, bạn không nên làm điều này

    Lưu ý đối tượng. Trừ khi đối tượng được truyền thuộc loại Chế độ xem, Người trình bày hoặc Đóng, nó phải có phương thức __toString() và buộc phải là một chuỗi khi bật tính năng lọc đầu ra. Nếu bạn vẫn muốn chuyển nó, bạn cần sử dụng set($name, $value, false), nhưng đừng quên lọc những gì bạn sử dụng
    Chế độ xem & Người thuyết trình dự kiến ​​sẽ chứa HTML và tự xử lý bộ lọc của riêng họ, đó là lý do tại sao chúng không được làm sạch. Không thể vệ sinh các phần đóng cửa và bạn nên cẩn thận để đảm bảo việc này được thực hiện bên trong các phần đóng cửa nếu cần thiết

    Kết xuất lười biếng

    Khi khởi tạo một đối tượng dạng xem, chỉ có môi trường cần thiết để tạo đầu ra được thiết lập. Tệp dạng xem không được đọc, không có biến nào được diễn giải và không có đầu ra nào được hiển thị

    Điều này chỉ xảy ra khi bạn gọi phương thức

    
    	
    		
    	
    	
    		Welcome, .
    	
    
    
    3 một cách rõ ràng trên đối tượng khung nhìn hoặc khi bạn chuyển đối tượng khung nhìn thành một chuỗi (xảy ra tự động khi bạn lặp lại nó). Điều này có nghĩa là không có lượt xem nào được xử lý cho đến khi thực sự cần thiết. Điều đó cũng có nghĩa là Fuel không giữ các chế độ xem được hiển thị trong bộ nhớ cho đến khi gửi chúng đến trình duyệt