CakePHP Framework: Một số quy ước cơ bản docx

13 269 1
CakePHP Framework: Một số quy ước cơ bản docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CakePHP Framework: Một số quy ước Ở trước, có dịp nói cách cài đặt tìm hiểu kiến trúc bên CakePHP Trong bài, tiếp tục hưỡng dẫn bạn sử dụng làm quen với quy ước CakePHP Qua nắm bắt tổng quan đồng thời vận dụng CakePHP cách linh hoạt Cách đặt tên file, tên lớp - Tên file sử dụng chữ thường, dùng dấu “_” để phân cách từ - Tên lớp dùng CamelCased (viết hoa chữ từ) Ví dụ : ta có tên lớp MyClass-> file class tương ứng :my_class.php Dưới ví dụ cách đặt tên file cho dạng lớp khác mà bạn thường sử dụng ứng dụng CakePHP : Các qui ước Model CSDL - Tên lớp model đặt dạng số việc viết hoa thường tuân theo CamelCased Ví dụ: Person, BigPerson ReallyBigPerson - CakePHP khơng hỗ trợ khóa gồm nhiều cột Nếu bạn muốn thao tác trực tiếp kết nối (join) bảng, truy vấn trực tiếp thêm khóa thay cho khóa nhiều cột Ví dụ: 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)); - Lẽ table post_tags, bình thường cột post_id tag_id ta cho làm khóa CakePHP khơng chấp nhận điều - Tên bảng tương ứng với model CakePHP dạng số nhiều sử dụng gạch (_) tên bảng tương ứng với model people, big_people, really_big_people - Tuy nhiên, bạn đặt tên bảng khác cho CakePHP biết điều thông qua biến $useTable model (các viết có ví dụ) - Bạn dùng thư viện Inflector có sẵn CakePHP để kiểm tra dạng số ít/số nhiều từ - Các khóa ngoại quan hệ hasMany, belongsTo, hasOne có tên mặc định số tên bảng kèm theo _id cuối Ví dụ với quan hệ NewsCategory có nhiều News, bảng news có khóa ngoại đến bảng news_categories news_category_id - Các bảng liên kết sử dụng quan hệ hasAnhBelongsToMany(viết tắt HABTM – quan hệ nhiều nhiều) đặt tên cách kết nối tên model theo thứ tự abc, tên apples_zebras khơng phải zebras_apples - Do đó, ta phải thêm khóa khác có tên id - Khóa mặc định CakePHP cột id, kiểu int, tự tăng Tuy nhiên, bạn định nghĩa lại khóa cho bảng thông qua biến $primaryKey model - Thay cho việc sử dụng kiểu int, auto-increment làm khóa chính, bạn dụngchar(36)hoặc binary(36), CakePHP tự động tạo UUIDs để làm khóa ta thêm record UUID chuỗi gồm 32 byte, tương ứng với 36 ký tự Ví dụ :550e8400-e29b-41d4-a716-446655440000 Qui ước Controller : - Tên lớp controller đặt theo dạng số nhiều, - Tuân theo CamelCased cuối tên phải có chữ “Controller” Ví dụ: ta có Controller tênProductsthì có class Controller sau : - Khi phương thức Controller đặt tên bắt đầu với với dấu “_”ở phía trước, bạn khơng thể truy xuất từ bên ngồi mà truy xuất controller (cái gọi private) Ví dụ: 01 Kết hiển thị sau: index() : public function _get_product() : private function Mô tả hoạt động : -http://localhost/products: function index() :run -http://localhost/products/_get_product: function _get_product() :not run -http://localhost/products/viewProduct: function _get_product() :run Ví dụ : Ta có controller NewsController với function: - View_all() - View_detail() Thì ta phải có file tương ứng : - View_all.ctp - View_detail.ctp Đặt thư mục app/view/news - Mặc định, controller NewsController có methodview(), gọi actionviewtrên trình duyệt (http://localhost/news/view) Controller tìm file view.ctp app/views/news/view.ctp - Tuy nhiên, bạn gọi file view khác view.ctp lệnh -Truy cập :http://localhost/news/view->load file :view.ctptrong thư mục app/views/news/ Ví dụ load file view khác : - Truy cập :http://localhost/news/view-> load file :view_demo.ctp thư mụcapp/views/news/ Tổng kết : viết demo đơn giản với CakePHP - Viết dứng dụng đơn giản với đường link :http://localhost/cakephp/relax/playgame/10 - Từ link trên, ta cần có : - Model : ví dụ khơng xử lý liệu nên khơng cần viết - View : file view.ctp để hiển thị kết : Ban dang chon tro choi thu 12 - Controller :Relax với action Playgame nhận tham số 12 Cách thực : - Vào thư mục app/controllers/ tạo relaxs_controller.php với nội dung : 01 09 10 11 12 15 16 -Kiểm tra kết :http://localhost/relaxs/playgame/12 Title không hiển thị kết mong muốn CakePHP có chế độ : - Dùng template có sẳn - Template Trong ví dụ , dùng template mặc định nên phần title CakePHP định ...Ở trước, có dịp nói cách cài đặt tìm hiểu kiến trúc bên CakePHP Trong bài, tiếp tục hưỡng dẫn bạn sử dụng làm quen với quy ước CakePHP Qua nắm bắt tổng quan đồng thời vận dụng CakePHP cách... bình thường cột post_id tag_id ta cho làm khóa CakePHP khơng chấp nhận điều - Tên bảng tương ứng với model CakePHP dạng số nhiều sử dụng gạch (_) tên bảng tương ứng với model people, big_people,... Tuy nhiên, bạn đặt tên bảng khác cho CakePHP biết điều thông qua biến $useTable model (các viết có ví dụ) - Bạn dùng thư viện Inflector có sẵn CakePHP để kiểm tra dạng số ít /số nhiều từ - Các khóa

Ngày đăng: 28/06/2014, 14:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan