Bạn đang xem danh sách các bài viết được gửi vào July, 2008
Thủ thuật CakePHP, phần 1
Trong loạt bài viết (không thường xuyên) này, tớ sẽ tổng hợp một vài thủ thuật nhỏ liên quan đến CakePHP. Trong đó, tớ mặc định bạn đang sử dụng Cake 1.2 - phiên bản mới nhất tại thời điểm này là 1.2.0.7296 RC2.
1. counterCache
Như bạn có thể thấy, khi code với CakePHP, nếu tuân theo các quy ước liên quan đến việc đặt tên table, column, class…, bạn sẽ đỡ cho mình được rất nhiều công việc, ví dụ như xử lý các giá trị created - thời điểm tạo record, modified - thời điểm cuối record được sửa.
Check out “CakePHP Conventions” for more information, but suffice it to say that naming our table ‘posts’ automatically hooks it to our Post model, and having fields called ‘modified’ and ‘created’ will be automagically managed by Cake.
“Automagic” của Cake không dừng lại ở đó - bên cạnh các field created, modified, *_id, bạn có thể sử dụng field có tên dạng *_count để lưu số lượng record liên quan.
Một ví dụ đơn giản: Mỗi record trong table Comment có field post_id trỏ tới record liên quan trong table Post. Để đếm số lượng comment của một post nhất định, thay vì dùng findCount(), nghĩa là mất thêm 1 query, bạn chỉ việc xem giá trị field comment_count được Cake xử lý tự động.
Việc khai báo trong 2 file model post.php, comment.php đơn giản là:
class Post extends AppModel {
var $hasMany = array('Comment');
}
class Comment extends AppModel {
var $belongsTo = array(
'Post' => array('counterCache' => true)
);
}
Ổn đấy chứ?
Bài viết được gửi hôm 20.07.08 · Mang các từ khóa cakephp, thủ thuật · Phản hồi [6]
Bookmarklet E3
Long time no update.
1. Tớ mới viết (thêm) một bookmarklet mới, lấy tên là E3. Nếu theo dõi tumblelog của tớ thì bạn hẳn đã biết về nó, và cũng có thể đã dùng thử E3 rồi:
Bookmarklet hỗ trợ chèn nhanh emoticon tớ mới viết. Đã test qua loa trên Firefox - ngon và Safari - hỏng. Hiện mới chỉ hỗ trợ textarea, chứ iframe kiểu WYSIWYG như TinyMCE và FCKeditor thì chưa.
- E3
Đoạn mã khởi động E3 như sau:
javascript:var%20e3%20=%20document.createElement("script");%20e3.setAttribute("src","http://onetruebrace.com/e3/e3.js?mc="+new%20Date().getTime());%20void(document.getElementsByTagName("head")[0].appendChild(e3));
Bài viết được gửi hôm 13.07.08 · Mang các từ khóa bookmarklet, code, e3, javascript · Phản hồi [9]
