Thứ Ba, 30 tháng 6, 2009

Hướng dẫn làm web cơ bản với CakePHP

CakePHP là 1 trong số nhiều framework dành cho PHP. Ở đây, chúng tôi chọn CakePHP vì đó là 1 công cụ thân thiệt, dẽ sử dụng, nhanh, mạnh và rất linh hoạt. Để có thể học và sử dụng thành thạo 1 cách nhanh chóng bạn phải biết những kiến thức cơ bản về HTML và PHP.

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. Và sau đó tìm hiểu thêm nhiều tính năng nữa của Cake nhé, khi đó bạn sẽ rất "sướng" cho mà xem.

Còn tôi thì phải đi làm tách trà đá cái đã !




















2 nhận xét:

  1. Nếu bạn đang muốn đăng tin bán nhà hay bán đất hoặc bạn muốn ban nha quan 12 , nha dat xinh thì hãy đến với chúng tôi rao vat mien phi, với chất lương hàng đầu chúng tôi sẽ giúp các bạn , đăng tin và xem các khu vực nha dat go vap, nha dat quan 9, nha dat thu duc , nha dat binh tan , nha dat tan phu , nha dat tan binh và các khu vực khác trên NguyenManhKha toàn quốc với uy tín và hiệu quả cao khi bạn đến với chúng tôi.

    Trả lờiXóa
  2. Khi dành phần đời còn lại của mình bằng việc mang niềm vui đến cho mọi người thì những con người ấy đã tìm thấy niềm vui thật sự của cuộc sống, fucoidan họ nhận ra niềm vui và hạnh phúc đến một cách tự nhiên khi mình mang niềm vui đến những người khác, liều dùng Fucoidan và thật kì diệu khi gần đến những ngày cuối cùng của số mệnh đã định trước họ chợt thấy mình vẫn khỏe mạnh chẳng có dấu hiệu gì là sắp chết, Fucoidan giá bao nhiêu rồi họ nhận ra cuộc sống đã cho mình một cơ hội nữa để làm lại cuộc đời sống những phút giây ý nghĩa mang lại niềm vui cho mình và tha nhân. Fucoidan Nhật Bản Fucoidan kích thích khả năng miễn dịch của cơ thể, ngăn ngừa sự hình thành của khối u, đồng thời có tác dụng làm chậm quá trình oxy hóa, Fucoidan có tốt không ức chế quá trình sự phát triển mạch máu mới của tế bào ung thư, từ đó loại bỏ nguồn cung cấp chất dinh dưỡng cho các tế bào ung thư.

    Trả lờiXóa