Trong phần đầu tiên này bao gồm:
- Giới thiệu sơ lượt về cakephp.
- Cấu trúc Cakephp framwork.
- Quy tắc cần nắm bắt.
- Hướng dẫn cài đặt & config một số module cho 1 vài webserver.
GIỚI THIỆU VỀ CAKEPHP
– Thông tin chung: Cakephp là 1 framwork thuần PHP. Nó xây dựng sẳn cấu trúc cũng như các thư viện cho người lập trình dễ dàng coding, nâng cấp project theo mô hình M-V-C đồng thời tiết kiệm thời gian và tránh việc trùng lặp code quá nhiều. Đặt biệt đây là framwork mở miễn phí được cộng đồng đánh giá cao.
– Tính năng ưu việt có trong Cakephp Framwork:
• Tương thích PHP4 và PHP5
• Xây dựng theo mô hình MVC
• Đa ngôn ngữ
• Sinh code tự động dựa trên database.
• Lưu tạm – Caching (ảnh hưởng lớn đến toàn bộ project)
• Phân quyền (ACL)
• Kiểm tra ràng buộc dữ liệu thông qua model
• Xây dựng nhiều thư viện hỗ trợ cho View (dc gọi Helper) như: Ajax, HTML Form, Javascript…
• Xây dựng nhiều thư viện hỗ trợ cho Controller (dc gọi Component): Email, Security, Session, Cookies, Request Handling
• Dễ dàng viết thêm thư viện hỗ trợ, liên kết với ứng dụng khác thông qua vendors (thích nhất cái này)
• Đa giao diện (Hơi khó khăng trong việc phân chia layout)
• Hỗ trợ nhiều hệ quản trị CSDL
• Kiểm tra dữ liệu(bắt lỗi trên form) thông qua model. Tuy nhiên ít dc sử dụng sao khi sử dụng sẽ hiểu
• Cho phép toạn link thân thiện (giấu link chính ><)
• Dễ dàng cofig trong database cũng như core của framwork.
CẤU TRÚC CAKEPHP
1. CẤU TRÚC THƯ MỤC
Sau khi tải và giải nén CakePHP, bạn có thể thấy các files và thư mục sau :
–app: là nơi chứa mã nguồn ứng dụng của bạn (phần này quang trọng)
–cake: là nơi chứa mã nguồn của CakePHP. Bạn không nên chỉnh sửa các files trong thư mục này nếu bạn không hiểu rõ về chúng
–vendors: chứa ứng dụng của bên thứ 3, phục vụ cho ứng dụng của bạn
–plugins: chứa các thành phần mở rộng dùng cho ứng dụng
Config Chứa file cấu hình hệ thống
Controllers Chứa các controller và component
Locale Chứa file ngôn ngữ , phục vụ cho ứng dụng đa ngôn ngữ
Molels Chứa file Model và behavor, datasource
Plugins Chứa các gói mở rộng
TmpThư mục tạm của ứng dụng
Vendors Chứa ứng dụng của bên thứ 3
Views Chứa các file giao diện
Webroot Chứa tài liệu (hình ảnh,file..), file CSS , file javascript…
Cũng như các PHP framework khác, CakePHP hoạt động theo mô hình MVC. Mô hình MVC trong CakePHP chia ứng dụng ra ba phần chính: Model, View và Controller, việc phân tách ứng dụng rõ ràng như vậy sẽ giúp bạn tách bạch các phần xử lý riêng biệt cho website của bạn, nó giúp cho code của bạn trong sáng hơn, dễ lập trình, dễ quản lý, chỉnh sửa, nâng cấp. Trong đó:
– Model: mô tả dữ liệu của ứng dụng. Trên Model ta có thể thiết lập các ràng buộc dữ liệu, quan hệ giữa các bảng. Model giao tiếp với database, bạn sẽ viết các query cũng như các xử lý logic ở đây.
– View: đảm nhận việc hiển thị thông tin đã được xử lý gới đến từ Controller, View còn được hiểu nôm na là nơi chứa các file html của bạn để hiển thị cho nguời xem.
– Controller: xử lý và điều hướng các yêu cầu của client, Controller nơi bạn trực tiếp viết các xử lý lấy các request từ url và form để thao tác trực tiếp với Model, sau đó dùng View để hiển thị ra
Ta có mô hình cơ bản như sau:
Mô Hình MVC
Cách thức hoạt động:
- Đầu tiên client sử dụng web browser để gởi yêu cầu đến ứng dụng bằng cách gõ hoặc click vào một đường link liên kết có dạng sau:
http://{Domain}.com/{Application}/{Controller}/{Action}/{Parameter
1
, etc.}
- Bộ phận điều vận Dispatcher (là một thành phần của CakePHP) sẽ kiểm tra phần tử để xác định controller nào sẽ thực thi và gởi yêu cầu tới controller tương ứng
- Khi yêu cầu được gởi đến Controller, nó sẽ làm một vài thao tác luận lí cần thiết, có thể nó sẽ xử lý ngay tại Controller hoặc sử dụng Model tương ứng để truy xuất dữ liệu. Dữ liệu ở đây có thể là các record trong table của một database, hoặc một dạng khác.
- Sau khi lấy được dữ liệu, Controller sẽ đưa dữ liệu này ra View và View này có nhiệm vụ chuẩn bị đưa dữ liệu đầu ra. View có thể chuẩn bị dữ liệu ở dạng HTML, PDF, tài liệu XML hoặc một đối tượng JSON, cuối cùng là view sẽ được hiển thị trên trình duyệt.
CÁC QUY TẮC TRONG CAKEPHP
Ở mỗi phiên bản khác nhau của Cakephp sẽ có mở rộng thêm quy tắc mới nên trong bài này chỉ nói về quy tắc trong cakephp 2.x
Cách đặt tên file, tên lớp
– Tên lớp dùng CamelCased (viết hoa chữ cái đầu tiên của từ)
Ví dụ : ta có tên lớp là MyClass-> file class tương ứng :my_class.php
Dưới đây là các ví dụ về cách đặt tên file cho mỗi dạng lớp khác nhau mà bạn thường sử dụng trong ứng dụng CakePHP :
Ví dụ: Person, BigPerson và ReallyBigPerson.
CREATE
TABLE
posts_tags (
id
INT
(10)
NOT
NULL
AUTO_INCREMENT,
post_id
INT
(10)
NOT
NULL
,
tag_id
INT
(10)
NOT
NULL
,
PRIMARY
KEY
(id));
<?php
Class ProductsController
extends
AppController{
//Mã lệnh ở đây
}
?>
Ví dụ:
<?php
Class ProductsControllers
extends
AppController{
function
index(){
//Mã lệnh ở đây
}
function
_get_product(){
//Mã lệnh ở đây
}
function
viewProduct(){
$this
->_get_product();
}
}
?>
_get_product() : private function
–http://localhost/products: function index() :run
–http://localhost/products/_get_product: function _get_product() :not run
–http://localhost/products/viewProduct: function _get_product() :run
– View_all()
– View_detail()
– View_all.ctp
– View_detail.ctp
<?php
$this
->render(
'ten_view'
);
?>
|
|
Class NewsController
extends
AppController{
function
view(){
…
}
}
?>
|
|
Class NewsController
extends
AppController{
function
view(){
….
$this
->render(“view_demo”);
}
}
?>
HƯỚNG DẪN CÀI ĐẶT VÀ CONFIG
Yêu cầu hệ thống :
- Hệ điều hành Windown hoặc Linux
- Hệ quản trị CSDL MySQL
Tải phiên bản CakePHP mới nhất.
– Trong ví dụ này thư mục webser góc của tôi là :C://xampp/htdocs
– Vậy ta có cấu trúc như sau :C://xampp/htdocs/cakephp
– Chmod thư mục app/tmpthành0777(nếu trên host, còn localhost thì khỏi cần)
– Mở file app/config/core.php:
Thay đổi giá trị của dòng Configure::write(‘Security.salt’, ‘DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi2010‘ );
Thay đổi giá trị của dòng Configure::write(‘Security.cipherSeed’, ‘768593096574535424967496836452011‘);
Bình luận về bài viết này