Thứ Năm, 11 tháng 6, 2015

Xây dựng một Helper trong CakePHP Framework

Bạn muốn dùng một hàm bất kỳ do bạn xây dựng ở bất cứ nơi đâu trong view, bạn có thể viết hàm này trong một controller nào đó sau đó dùng requestAction để gọi hàm ra.

Tuy nhiên đây không phải là cách tốt, đó là chưa kể tới việc dùng nhiều requestAction sẽ làm cho ứng dụng bị chậm đi. Xây dựng một Helper trong CakePHP Framework là cách giải quyết vấn đề trên.

Muốn dùng helper nào thì trong Controller ta phải khai báo thông qua biến $helpers

PHP Code:
<?php
   var $helpers = array('Html','Form','Javascript');
?>
Chúng ta bắt đầu đi viết một helper có tên là Common với tên file common.php trong thư mục app/views/helpers khi bắt đầu lập trình web
Đặt tên helpers theo cú pháp sau:
Code:
Tên lớp helper = tên helper + "Helper"

Như vậy ta sẽ có file common.php có nội dung như sau
PHP Code:
<?php
class CommonHelper extends HtmlHelper {

 function create_random_string($num) {
    //Tao du lieu cho hinh ngau nhien
    $chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J',  'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T',  'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    $max_chars = count($chars) - 1;
    for($i = 0; $i < $num; $i++) {
      $code = ( $i == 0 ) ? $chars[rand(0, $max_chars)] : $code . $chars[rand(0, $max_chars)];
    }
    return $code;
  }
}
?>
Tiếp đó ta tạo một file controller có tên là testcommon_controller.php để xử dụng lớp Helper vừa tạo

PHP Code:
<?php
class TestcommonsController extends AppController {
    var $helpers = array('Common');    
    function test_helper(){
        $this->render("test_helper");
    }
}
?>
Và trong thư mục Views : app/views/testcommons ta tạo một file test_helper.ctp với nội dung như sau
PHP Code:
<?php
    echo $this->Common->create_random_string(10);
?>
Lưu ý: Để dùng chung Helper trong nhiều Controller khác nhau chúng ta có thể khai báo $helpers trong app_controller nẳm trong thư mục app
PHP Code:
<?php
class AppController extends Controller {
   var $helpers = array('Html', 'Form','Javascript','Ajax','Common');
}
?>
Và khi cần sử dụng thì ta chỉ việc khai báo
PHP Code:
var $helpers = array('Html', 'Form','Javascript','Ajax','Common'); 

nguồn: the gioi web

SHARE THIS

0 nhận xét:

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.