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

Comments

Popular posts from this blog

Tạo mã xác nhận cho form đăng ký thành viên

Các thuộc tính của font trong CSS

Đếm số người đang online trên Website bằng Whos.amung.us - Blog của bạn