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 Library và config nên
có lẽ mình sẽ giải thích ít hơn nhé các bạn.
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é.
Nội
dung chính
- 1.
Helper là gì?
- Helper trong Project MVC này đặt ở đâu?
- Quy tắc đặt tên file helper
- 2. Tạo mới một file helper
- 3. Viết thư viện loader cho helper
- 4. Khởi tạo thư viện load helper trong FT_Controller
- 5. Sử dụng helper tại controller ở module
- 6. Lời kết
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ó.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ụ helperstring
thì tên file sẽ làString_Helper.php
- Trong helper bạn có thể chứa
class
hoặcfunction
đều được. Nhưng theo nguyên tắc nếu làclass
thì bạn nên đặt nó trong library nhé. - Vì
helper
chỉ là nhữngfunction
nên khiload 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ụcsystem/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:
123456<?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 helper3. 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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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:
1
2
3
|
//
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?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.

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.
0 nhận xét: