Bây giờ ta bắt đầu thôi nhỉ, đầu tiên bạn phải download CakePHP về : Download
Cài Đặt :
Để có thể sử dụng framework vừa download về, máy tính của bạn phải đáp ứng thêm 1 số yêu cầu sau :
- Một HTTP server (Apache, ISS). Ở đây tôi sử dụng Xampp vì nó khá phổ thông và còn kèm thêm cho bạn MySQL.
-Database : Cake hỗ trợ các hệ cơ sở dữ liệu sau : MySQL, PostgreSQL.
- Chú ý thêm là CakePHP chỉ support trong PHP ver4 trở lên.
Sau khi download thành công và đáp ứng đủ các yêu cầu trên thì bạn có thể giải nén tập tin (.zip) vừa download về và sao chép vào thư mục chứa Apache server (vd : C:\AppServ\www\CakePHP).
Cấu Hình :
Đầu tiên, để Cake và DataBase hoạt động cùng nhau, bạn phải cấu hình lại file database.php :
-Mở file database.php.default tại /CakePHP/app/config/database.php.default
-Điều chỉnh lại các thông số liên quan :
var $default = array(
'driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'project_name',
'prefix' => ''
);
Với user, password, database lần lượt là: tên user, password và database ở trong MySql. Quy ước về đặt tên bảng trong database
- Tên bảng trong cake nên ở dạng tiếng Anh số nhiều (vd: users, customers, students, … )
- Bảng phải có primary key tên là ‘id’
- Nếu có sử dụng quan hệ trong các bảng vd: user_id (user không có s và dấu _ cộng id)
-Tiếp đến bạn thay đổi tên file thành database.php -Cuối cùng, mở file core.php tại /CakePHP/app/config/core.php. Thay đổi security theo ý của bạn : Configure::write(’Security.salt’, ‘8rnc4ry438tc34jchcyu34cu5cbn4u’); => Configure::write(’Security.salt’, ‘<tùy bạn>’);
Hướng dẫn sử dụng :
Để kiểm tra xem khâu cài đặt có hoàn thành hay không, bạn mở đường dẫn : http://localhost/CakePHP/ Ở đây tôi không tiện chụp ảnh lại nên bạn chịu khó nhìn giao diện, nếu không thấy đỏ lòm hay vàng khè j’ thì cứ yên tâm là đã ok ! Yên tâm hơn nữa thì hãy tìm 2 dòng Your database configuration file is present. và Cake is able to connect to the database. Nếu tìm tháy thì cùng tôi bắt đầu tiếp. Còn nếu có 2 màu đặc biệt đấy thì bạn nên xem lại các bước đã làm ! Tạo bảng Cơ Sở Dữ Liệu : tạo bảng customers như sau :
id: INT, AUTO_INCREMENT, PRIMARY KEY
name: NVARCHAR
age: INT
address: VARCHAR
Code :
Quên mất, bạn đã biết mô hình MVC (Models-Controller-View) là j’ chưa nhỉ, nếu chưa thì bạn cứ hiểu nôm na như sau : Mô hình MVC trong lập trình hướng đối tượng hoạt động theo 3 tầng, tầng trên cùng là View, tiếp theo là Controller và tầng dưới cùng là Models.
- Models : dùng để giao tiếp với Cơ Sở Dữ Liệu của bạn.
-Controller : dùng để tạo các function để viết các yêu cầu theo ý muốn, lấy dữ liệu từ Cơ Sở Dữ Liệu thông qua Models và hiển thị ra tại View.
-View : là nơi thể hiện dữ liệu đã được xử, hoặc từ đây ta có thể nhập dữ liệu mới, sau đó Controller sẽ lấy dự liệu từ View chuyển về cho Models để lưu vào Cơ Sở Dữ Liệu. Nói nhanh cho vuông thì View cũng có thể coi là 1 trang template.
*Để hiểu thêm về mô hình MVC thì bạn hãy search google và tìm hiểu thêm, còn bây giờ tôi phải vào mục chính là làm việc với CakePHP.
Chúng ta bắt đầu làm việc theo thứ tự 3 tầng MVC từ thấp đến cao.
Đâu tiên là Model : mở trình soạn, tạo file customer.php tại \CakePHP\app\models\customer.php
<?php
class Customer extends AppModel
{
var $name = 'Customer';
}
?>
Tiếp đến là Controller : tạo file custermers_controller.php tại \CakePHP\app\controllers\custermers_controleller.php
<?php
class CustomersController extends AppController
{
var $name = 'Customers';
function index()
{
$this->set('customers', $this->Customer->findAll());
}
}
?>
Cuối cùng là View : file index.ctp tại \CakePHP\app\view\custermers\index.ctp
<h1>Customer Manager</h1>
<table>
<tr>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th>Address</th>
</tr>
<?php foreach ($customers as $cust): ?>
<tr>
<td><?php echo $cust['Customer']['id']; ?></td>
<td>
<?php echo $html->link($cust['Customer']['name'], '/customers/view/'.$cust['Customer']['id']);?>
<?php echo $html->link('Delete',"/customers/delete/{$cust['Customer']['id']}",null,'Are you sure?')?>
<?php echo $html->link('Edit', '/customers/edit/'.$cust['Customer']['id']);?>
</td>
</td>
<td><?php echo $cust['Customer']['age']; ?></td>
<td><?php echo $cust['Customer']['address']; ?></td>
</tr>
<?php endforeach; ?>
</table>
Có vẻ ổn rồi, bạn hãy thử mở đường dẫn http://localhost/CakePHP/custermers để xem kết quả của chương trình bạn vừa viết.
sao toàn cop bài ko vậy có hướng dẫn chi thêm không
ReplyDeleteví dụ như trong AppController
this->set() ý nghĩa là gì vậy
bạn tìm hiểu thêm ở
ReplyDeletehttp://book.cakephp.org/view/326/The-Cake-Blog-Tutorial