MVC PHP NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

MVC PHP - Viết thư viện load helper

Tiếp tục serie MVC PHP thì trong bài này chúng ta tìm hiểu helper và cách viết thư viện load helper trong project MVC của chúng ta. Về cách làm thì vẫn không khác gì so với các bài load Libraryconfig nên có lẽ mình sẽ giải thích ít hơn nhé các bạn.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trước khi vào bài học thì mình chụp hình cấu trúc folder cho bài này nhé.

/mvc-php-viet-thu-vien-load-helper-2.png

1. Helper là gì?

Helper là nơi lưu trữ các hàm và mỗi file helper thông thường sẽ chứa những hàm có cùng một chủ đề. Ví dụ khi ta tạo các hàm xử lý chuỗi thì ta sẽ tạo một file String_Helper.php để lưu trữ, khi tạo các hàm chuyên xử lý file thì ta tạo file File_Helper.php để lưu trữ.

Helper trong Project MVC này đặt ở đâu?

Tất cả các file helper sẽ được đặt trong folder system/helper và mục đích là cho tất cả các module đều có thể sử dụng nó.

Bài viết này được đăng tại [free tuts .net]

Quy tắc đặt tên file helper

Để đặt tên file helper bạn phải tuân thủ các quy tắc sau:

  • Tên file helper phải viết in hoa chữ cái đầu và có hậu tố _Helper ở cuối. Ví dụ helper string thì tên file sẽ là  String_Helper.php
  • Trong helper bạn có thể chứa class hoặc function đều được. Nhưng theo nguyên tắc nếu là class thì bạn nên đặt nó trong library nhé.
  • helper chỉ là những function nên khi load helper hệ thống sẽ không tạo mới như library mà bạn muốn dùng hàm nào thì gọi tới hàm đó.

2. Tạo mới một file helper

Bây giờ ta thực hành tạo mới một file helper có tên là string thì bạn sẽ thực hiện các bước sau:

  • Tạo mới một file có tên là String_Helper.php nằm trong thư mục system/helper
  • Viết những hàm bạn muốn tạo trong helper đó. Giả sử mình viết hàm string_to_int() như sau:
    <?php if ( ! defined('PATH_SYSTEM')) die ('Bad requested!');
    
    // Chuyển đổi chữ thành số
    function string_to_int($str) {
        return sprintf("%u", crc32($str));
    }

Ok vậy là bạn đã tạo được một file helper có tên là string. Bây giờ ta tiến hành viết thư viện loader cho helper

3. Viết thư viện loader cho helper

Bạn mở file system/core/loader/FT_Helper_Loader.php lên và điền nội dung sau vào:

 

<?php
/**
 * @package		FT_Framework
 * @author		Freetuts Dev Team
 * @email       freetuts.net@gmail.com
 * @copyright	Copyright (c) 2015
 * @since		Version 1.0
 * @filesource  system/core/loader/FT_Helper_Loader.php
 */
class FT_Helper_Loader
{
    /**
	 * Load helper
     * 
	 * @param 	string
     * @desc    hàm load helper, tham số truyền vào là tên của helper
	 */
    public function load($helper)
    {
        $helper = ucfirst($helper) . '_Helper';
        require_once(PATH_SYSTEM . '/helper/' . $helper . '.php');
    }
}

 

Trong file này mình tạo mới một class tên là FT_Helper_Loader và trong nó có phương thức load(), phương thức này có tham số truyền vào là tên helper ở dạng chưa được chuyển đổi nên khi bạn load helper chỉ cần nhập vào tên là được. Ví dụ load helper string thì sẽ nhập tên là string chứ không phải String_Helper.

4. Khởi tạo thư viện load helper trong FT_Controller

Bước này khá quan trọng nhé các bạn. bạn vào file system/core/FT_Controller.php và thêm đoạn code load helper như sau ở hàm khởi tạo:

 

// Load Helper
require_once PATH_SYSTEM . '/core/loader/FT_Helper_Loader.php';
$this->helper = new FT_Helper_Loader();

 

Và đây là toàn bộ code cho hàm khởi tạo:

 

public function __construct() 
{
    // Loader cho config
    require_once PATH_SYSTEM . '/core/loader/FT_Config_Loader.php';
    $this->config   = new FT_Config_Loader();
    $this->config->load('config');

    // Loader Library
    require_once PATH_SYSTEM . '/core/loader/FT_Library_Loader.php';
    $this->library = new FT_Library_Loader();

    // Load Helper
    require_once PATH_SYSTEM . '/core/loader/FT_Helper_Loader.php';
    $this->helper = new FT_Helper_Loader();
}

 

5. Sử dụng helper tại controller ở module

Bây giờ ta sẽ thực hành sử dụng helper nhé.

Bạn tạo một controller mới tên là Helper_Controller.php, sau đó copy nội dung sau vào:

 

<?php if ( ! defined('PATH_SYSTEM')) die ('Bad requested!');

class Helper_Controller extends FT_Controller
{
    public function indexAction()
    {
        // Load heloer
        $this->helper->load('string');
        
        // Gọi đến hàm string_to_int
        echo string_to_int('freetuts.net');
    }
}

 

Bạn chạy với URL như sau: http://localhost/mvc/admin.php?c=helper và nếu kết quả như hình thì bạn đã thành công rồi đấy.

/mvc-php-viet-thu-vien-load-helper.png

6. Lời kết

Khi viết các bài về load thư viện này nếu bạn không rành về lập trình hướng đối tượng hoặc chưa tìm hiểu một số kiến thức về design pattern thì sẽ hơi khó khăn cho bạn đấy. Lời khuyên cho ban nếu rơi vào trường hợp đó thì hãy ráng học OOP trước khi tìm hiểu vào project này nhé, vì đây là serie dạng text chứ không phải video.

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top