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:
<?phpChú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
var $helpers = array('Html','Form','Javascript');
?>
Đặ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:
<?phpTiế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
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;
}
}
?>
PHP Code:
<?phpVà trong thư mục Views : app/views/testcommons ta tạo một file test_helper.ctp với nội dung như sau
class TestcommonsController extends AppController {
var $helpers = array('Common');
function test_helper(){
$this->render("test_helper");
}
}
?>
PHP Code:
<?phpLư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
echo $this->Common->create_random_string(10);
?>
PHP Code:
<?phpVà khi cần sử dụng thì ta chỉ việc khai báo
class AppController extends Controller {
var $helpers = array('Html', 'Form','Javascript','Ajax','Common');
}
?>
PHP Code:
var $helpers = array('Html', 'Form','Javascript','Ajax','Common');
nguồn: the gioi web
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.