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 đã !




















Thứ Bảy, 20 tháng 6, 2009

MỘT NGÀY PHẢI KHÁC MỌI NGÀY

MỘT NGÀY PHẢI KHÁC MỌI NGÀY

(Sau một ngày thống kê một cách khách quan những bi hài kịch thời sự nóng hổi)

Chào một ngày giống hệt mọi ngày

Sóng truyền hình phủ toàn phim Trung Quốc

Từ HTV, VTV, BTV, Đồng Nai, Long An, Bà Rịa Vũng Tàu, Cà Mau… cho đến “cáp”

Hết “Triều Đại Mãn Thanh” đến “Đại Tống Truyền Kỳ”

Chào một ngày giống hệt mọi ngày

Đọc báo thấy cha ông mất hút

Thấy thiên hạ quỳ mọp dưới tượng đài Binh Pháp Mặc Công, Ngọa Hổ Tàng Long, Họa Bì, Xích Bích…

Con nít thuộc lòng Hoắc Nguyên Giáp, Hoàng Phi Hồng, Diệp Vấn, Diệp tùm lum hơn thuộc sử Tiên Rồng

Chào một ngày đất nước tự lưu vong

Cội rễ văn hiến 4000 năm trốc gốc

Tuổi teen gối đầu giường Lý An, Ngô Vũ Sâm, Trương Nghệ Mưu, Trần Khải Ca lạ hoắc

Pano giăng khắp nơi hình ảnh Củng Lợi, Chương Tử Di, Thành Long phơi phới toét miệng cười

Chào một ngày phát triển giống đười ươi

Đi trên xã tắc thấy người thua xa khỉ

Thấy lô cốt ngáng đường, thấy nước ngập tận mông, thấy thánh hiền sợ quỷ

Thấy truyền thống chống ngoại xâm co rúm lại vì… tiền

Chào một ngày vong bản vì… hèn

Sống chết mặc bây, túi thầy vô cảm

Ải Nam Quan nằm ngoài ranh giới Việt Nam, xưa rồi Diễm…

Nước mắt Nguyễn Trãi khóc Nguyễn Phi Khanh rơi ở tận… nước Tàu

Chào một ngày bãi biển hóa nương dâu

Thác Bản Giốc rời Cao Bằng như có cánh

Thắng cảnh để lại của tiền nhân bị cháu con ghẻ lạnh

Các di tích, kỳ quan cứ mất tích đều đều

Chào một ngày hình chữ S tong teo

Tài nguyên bôxit bị bới đào như… bọ xít

Nhôm và đô la chẳng thấy đâu, chỉ thấy đất Tây Nguyên rên xiết

Ô nhiễm mạch ngầm, nước sông làm nghẹt thở Chín Con Rồng

Chào một ngày long mạch bị xới tung

Máu bầm đất đỏ bazan, máu tràn ra hải đảo

Ai cho phép Hoàng Sa Trường Sa thành Tam Sa lếu láo

Tội nghiệp rừng cọc nhọn của Hưng Đạo Đại Vương trên sóng Bạch Đằng

Chào một ngày giống hệt cõi âm

Những xác chết anh hùng bật dậy

Máu trả máu, đầu trả đầu. Nhớ đấy

Mãi quốc cầu vinh tất quả báo nhãn tiền

Chào một ngày soi rõ mặt anh em!

21 – 4 – 2009

BÙI CHÍ VINH