Hướng dẫn ngắn - nhanh Cakephp

Hướng dẫn cách sử dụng Cakephp 2 và Smarty

Hướng dẫn nhanh, gọn và có kèm theo link mediafire download code mẫu sau khi đã hoàn thiện việc gắn smarty vào CakePHP 2. Hướng dẫn tỉ mỉ, rõ ràng đơn giản.

1. Tải Framework CakePHP và thư viện Template engine Smarty:

Phần đầu, mình xin được giới thiệu các mã nguồn cần phải download để làm được việc tích hợp Smarty vào CakePHP

- CakePHP 2.7 - Cái này chắc chắn không thể thiếu. Các bạn có thể download trực tiếp link tại đây
- Smarty 3.1. Các bạn download tại trang Github: https://github.com/smarty-php/smarty/releases/tag/v3.1.24 hoặc download bản đơn giản xài ngay do mình đã lọc bỏ bớt những thứ thừa thãi tại đây
- Bộ Plugin kết nối sau khi đã được mình chỉnh sửa mã nguồn cho chính xác tại đây

2. Vị trí đặt Smarty, Thư viện Plugin hỗ trợ và các file cấu hình trong CakePHP

- Thư viên Smarty các bạn vừa download sẽ được giải nén vào thư mục app/Vendor như hình chụp bên dưới. Các bạn chú ý đúng vị trí và đúng hoa thường tên folder lẫn class nhé. Linux và Window khác nhau nên không chuẩn sẽ gây lỗi đó.

 - Tiếp theo chúng ta đặt plugin kết nối Smarty và CakePHP và folder app/Plugin như hình dưới.

Ok, bây giờ chúng ta đã xong 2 phần cơ bản nhất. Tiếp theo chúng ta chuyển sang cấu hình để chạy được.

3. Nội dung cấu hình file Boostrap và load Class trong AppController

- Nội dung cấu hình file Boostrap:
// Load plugin SmartyView ra để sử dụng
CakePlugin::load('SmartyView');
 - Nội dung file app/Controller/AppController:
class AppController extends Controller {
    // Load Sử dụng thư viện Smarty thay thế cho view mặc định của CakePHP
    public $viewClass = 'SmartyView.Smarty';

}
Xong một phần nữa, giờ chúng ta cùng sang bước tiếp theo là tạo file view và test thử xem chạy đúng chưa.

4. Đặt tên file view của action và chạy thử

- Trong bài này mình cấu hình Vhost cho dự án với tên miền ảo là cakephpsmarty.dev. Những bạn nào chưa biết có thể xem bài "Hướng dẫn cấu hình Vhost" mình đã viết ở bài trước.
- Chúng ta sử dụng Controller PagesController mặc định do framework cung cấp và action display mặc định của nó như trong hình vẽ bên dưới:



- Trong file cấu hình routes các bạn nhập nội dung như sau:
// Chỉ định trang chủ là action display của controller pages
Router::connect('/', array('controller' => 'pages', 'action' => 'display'));
- Nội dung của display action:
public function display() {
	$test = "Đây là action display với dữ liệu test";
        $this->set('test', $test);
}
- Nội dung file app/View/Pages/display.tpl:
<h1>Chào mừng bạn!</h1>

<strong>{$test}</strong>
Cuối cùng chúng ta chạy test thử trên trình duyệt nếu ra được kết quả như thế này là chính xác: (Ở đây lỗi db vì mình chưa cấu hình database nhưng các bạn có thể thấy là đoạn text "Đây là action display với dữ liệu test đã được gán và hiển thị bằng cú pháp của Smarty ok".


Link download toàn bộ code mãu: Tại đây
Mật khẩu giải nén: baobinh.net

  • Posted by
  • 2015-09-11 21:41:15