quanganhdo's archive

I'm Anh Quang Do (aka QAD). This tumblelog is where I talk about what I deeply care about and link to interesting articles on the interweb. If you want to reuse any of my content, feel free to do so. Just remember to put a link back to my original post.

Posts tagged with “cakephp”

The Cake Is Still Rising →

Bình luận chính thức về sự kiện 2 thành viên nhóm phát triển CakePHP chính thức rời bỏ dự án.

So, while we've had changes in the development team recently, in terms of the active developers working on CakePHP current branches, very little has changed.

Theo dòng sự kiện:

3 trang web tớ mới làm

Nếu follow tumblelog của tớ, chắc hẳn bạn đã biết tới 2 trong số 3 trang web nho nhỏ, xinh xinh này.

1. TumblrStats - http://tumblrstats.com

Trang web này được tớ làm để *nghịch ngợm* với API của Tumblr. TumblrStats cho bạn biết một số thông tin thú vị về tumblelog của mình: tuổi thọ tumblelog, số lượng bài viết - tổng số và chia theo loại bài, tần số post bài...

Mã nguồn TumblrStats chủ yếu được viết bằng JavaScript; bạn có thể tham khảo tại đây. Tất cả công việc tính toán đều do phía client lo, và ngay cả biểu đồ hiển thị bên cạnh số liệu cũng được lấy từ Google thông qua Google Chart API.

Phần việc của server đơn giản chỉ là hiển thị trang chủ khi không xác định được Tumblr username, cộng với rewrite các request dạng tumblrstats.com/username thành URL hợp lý.

Check it out: http://tumblrstats.com

Read More »

Thủ thuật CakePHP, phần 2

Điều được tớ nhắc đến trong bài viết này không hẳn là một thủ thuật, đồng thời nó cũng không chỉ được áp dụng cho mỗi mình CakePHP. Nó là 2 chữ: đọc nhiều.

1. Bên cạnh những nguồn thông tin và tài liệu "chính thống" được nêu trên trang chủ CakePHP, như The Cookbook, The Bakery, hay những blog vốn đã nổi tiếng từ lâu vì những bài viết về CakePHP như cakebaker, Debuggable (trước là ThinkingPHP), bạn có thể tìm thấy hằng hà xa số các bài viết khác về framework này từ rất rất nhiều các blog khác.

Vào thăm ngần đó blog thường xuyên là điều không khả thi, và cũng không thật cần thiết, khi mà bạn chỉ cần nhớ một địa điểm duy nhất - Planet CakePHP. Trang web này tập hợp (gần như) tất cả các bài viết về CakePHP rải rác mọi nơi trên web về một mối, giúp bạn nhanh chóng cập nhật kiến thức của mình.

Hãy bookmark hoặc đăng ký nhận tin RSS từ feed aggregator này: http://planetcakephp.org/aggregator

2. Đôi lúc trong khi code, bạn sẽ cần thông tin về một số vấn đề thường gặp: Làm thế nào để sử dụng Auth Component? Làm sao để dùng theme? Cài đặt và sử dụng bake ra sao?

Bạn có thể tìm thấy danh sách các tutorial giải đáp những câu hỏi đó trong bài viết CakePHP Tutorials đăng trên blog PseudoCoder.

Một địa chỉ khác mà trước kia tớ thường lui tới là trang Frequent discussions trên CakePHP Google Group. Tuy nhiên, tại thời điểm viết bài, khi truy cập hiện ra thông báo lỗi "Sorry, you have to be a manager of this group to view this page" - có lẽ trang web này đang trong giai đoạn bảo trì.

Vậy nhé. Đón xem phần sau, nếu có.


jtale.com chính thức ra mắt

1. Như vậy là phải đến hôm qua, bọn tớ mới quyết định cho jtale.com chính thức ra mắt. Cơ sở dữ liệu thử nghiệm được xóa toàn bộ. Các chương truyện dịch bắt đầu được đưa lên. Một số thành viên mới được bổ sung vào "ban quản lý". Mật khẩu truy cập được gỡ bỏ khỏi trang chủ. Vân vân và vân vân.

Dự định ra mắt đúng mùng 1.9 của tớ không thành, vì cuối tháng 8 vừa rồi không rảnh rỗi cho lắm - suốt 2 tuần liền tớ không viết được thêm một dòng mã nào. Bị chê là "thiếu chuyên nghiệp", nhưng dù sao thì mùng 3 vẫn là đầu tháng 9 (cười).

Read More »

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.

- Example Applications :: Blog

"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à:

Ổn đấy chứ?

Read More »(((more)))2. Debug o