Sách viết về CakePHP - Tại sao không?
CakePHP là một framework rất thú vị, nhưng một trong những điểm yếu của nó vẫn luôn nằm ở khía cạnh tài liệu. Với symfony, người ta có thể tìm thấy quyển The Definitive Guide to symfony; với CodeIgniter, đó là CodeIgniter for Rapid Php Application Development. Ngay cả Zend Framework, tuy xuất hiện chưa lâu nhưng cũng sắp xuất hiện một quyển sách viết về framework này - Guide to Programming with the Zend Framework. Trong trường hợp của Cake, cho đến nay dù có tìm đỏ mắt người ta cũng khó có thể tìm ra một cuốn sách tương tự.
Vấn đề là tại sao không có cuốn sách nào viết về CakePHP? Hay, dùng từ chính xác hơn, tại sao chưa có quyển sách nào viết về CakePHP?
Đó là một câu chuyện dài…
Cách đây khoảng hơn một năm, một cuốn sách mang tên “CakePHP Recipes” được giới thiệu trên blog của Fabio Cevasco. Cuốn sách này là kết quả của sự hợp tác giữa Peachpit Press, Fabio và Cake Foundation. Tại thời điểm đó, những ai quan tâm có thể đặt mua trước cuốn sách này; chỉ tiếc là cho đến nay trên các kệ sách vẫn không có cái tên CakePHP Recipes, khi mà kế hoạch xuất bản cuốn sách bị dẹp bỏ hoàn toàn chỉ sau vài tháng. Kể cả một phiên bản online dạng PDF cũng sẽ không bao giờ xuất hiện.
Fabio viết một bài viết trên blog của mình để thông báo về tin tức này: Too many cooks spoil the Cake book.
This is a huge disappointment to me, in particular because I am not responsible for the cancellation. It was going to be my very first book to be published, and due to someone else’s misjudgement and lack of motivation it will never be available to the readers. I do not want to put the blame the whole Cake Software Foundation for this: nearly every person involved in the project did his best in reviewing parts of the book or offering me support. Regrettably this wasn’t enough: unfortunately it seems that someone didn’t like the idea of me writing the book and kept doubting not only my coding skills but also my ability as a writer all along.
- Fabio
Cake Foundation rút khỏi dự án, không chấp nhận CakePHP Recipes là cuốn sách chính thức, khiến nhà xuất bản hủy hợp đồng với Fabio. Cộng đồng CakePHP mất đi thành viên có đóng góp đáng kể đầu tiên - Fabio thôi viết về CakePHP trên blog của mình và chuyển qua tìm hiểu về Ruby on Rails.
Và đó mới chỉ là sự bắt đầu.
Tháng 6 năm 2007, một thread xuất hiện trên CakePHP | Google Groups, thông báo về một phiên bản Cake manual tương tự manual của php.net, cho phép người đọc comment bên dưới mỗi bài viết. Sau đó chỉ hai ngày, giống như số phận của CakePHP Recipes, manual này bị dẹp bỏ. Lý do được đưa ra là manual mới vi phạm quyền sở hữu trí tuệ, sử dụng logo CakePHP cũng như manual gốc mà không xin phép Cake Foundation. Cake được phổ biến dưới dạng phần mềm nguồn mở, nhưng manual thì không.
Không ít người cho rằng CakePHP có một vấn đề lớn - vấn đề con người. Fabio hợp tác với Cake Foundation ngay từ đầu, nhưng đến khi dự án CakePHP Recipes bị hủy lại không nhận được thông báo từ phía development team, mà đến từ phía nhà xuất bản. Trường hợp Dérico và phiên bản manual cho phép người dùng comment, development team cũng có những phản ứng không lấy gì làm hay ho lắm - thay vì hợp tác với Dérico, họ yêu cầu dẹp bỏ nó; dù nói thẳng ra bản manual mới này chỉ có lợi cho cộng đồng thay vì có hại. Dẫn lời Dérico:
I don’t want to provoke a fork… I just want to be able to enhance the available docs with common knowledge of all developers… I got very crossed when Mr. Woodworth said “For one, you did not talk to anyone on the development team before doing this.” Hey… please guys, visit www.cakephp.org and find a SINGLE LINK named “CONTACT US”or something similar… There’s none… and by then, I did not know that GWOO was one of the founders of Cake Foundation. I POSTED here just the beginning of the idea. I *wanted* to talk to anyone of the core team, first. So much I did, that I filed a Documentation Enhancement in trac’s. In the day following I opened this thread.
- Dérico
Theo gwoo - một trong những thành viên của core team, một dự án tương tự (và chính thức) đang được thực hiện. Tuy nhiên, đến giờ vẫn chưa thấy mặt mũi dự án này ở đâu. Có vẻ như ở CakePHP, bày tỏ thiện chí và tham gia đóng góp cũng không phải dễ dàng gì.
Tất cả những vấn đề này lại được lật lại một lần nữa, khi lại thêm một người có tâm huyết với CakePHP phải ra đi - Daniel Hofstetter với blog nổi tiếng về Cake - cakebaker.
Đó là thời điểm sau loạt bài viết về những điểm không hợp lý trong CakePHP - Lessons learned from loadController(null) và “I don’t trust CakePHP” or what should you say in public?. Về cơ bản, dho chỉ trích các hạn chế trong framework này khi chính mình là thành viên của development team, và điều đó xem ra hơi chướng mắt. Nhiều cuộc thảo luận, trao đổi, thậm chí cãi vã ngầm xoay quanh những bài viết này đưa đến hệ quả được công bố ở bài viết tiếp sau của dho: Bye, bye, CakePHP team. dho bị loại khỏi team, với lý do “ít đóng góp cho Cake với vai trò là thành viên core team” - theo lời gwoo. Điều làm cho dho bất ngờ là quyết định đó được thực hiện lặng lẽ, không qua trao đổi trực tiếp. Đơn giản là dho không còn truy cập được vào kênh IRC của team với password cũ, cũng như không thể quản lý các ticket trong trac như trước.
Bài viết “Bye, bye, CakePHP team” của dho có lẽ là bài viết được comment nhiều nhất trên cakebaker. Rất nhiều quan điểm đã được đưa ra, phần lớn đều nhằm vào core team. Tớ lấy comment này để kết chuyện:
I said it when Fabio/H3rald left, and I’ll say it again—I think the biggest weakness of Cake is that the core dev team is quick to cut people out who don’t hold to every dogma the devs do. Fundamentalism, ego, call it what you will, a great community will only count for so long if the core keeps alienating its biggest allies.
(not that they’re neccessarily alienating you, dho. I truly hope you stick around. You do seem to be taking it well.)
- Anon
Trở lại với một cuốn sách viết về CakePHP (lan man mãi giờ mới về chuyện chính!), theo những gì tớ biết, giờ vẫn chưa phải là thời điểm thích hợp để xuất bản sách. CakePHP 1.2 đang trong giai đoạn phát triển gấp rút, thay đổi API hàng ngày hàng giờ, mỗi lần upgrade là một lần phải kiểm tra cũng như sửa code cũ cho đảm bảo tính tương thích; do đó nếu sách được xuất bản sẽ không bắt kịp với phiên bản mới của Cake. Tập trung công sức vào sách cũng sẽ làm tiến độ phát triển framework này chậm lại. Vậy nên ít nhất cần chờ đến khi CakePHP ổn định ở phiên bản 1.2 mới mong có cái để đọc.
Trong lúc chờ đợi, có lẽ nghiền ngẫm API và đọc tempdocs là giải pháp phù hợp nhất.
Bài viết được gửi hôm 14.01.08 · Mang các từ khóa cakephp, linh tinh
Bài viết liên quan:
Nguyen Vu gửi hôm 15.01.08 lúc 9:05 am #
Chắc phải đợi CakePHP ra bản 1.5 mới có sách để đọc :D
htl gửi hôm 15.01.08 lúc 9:13 am #
iden làm quả giống tut php hồi trước đi :x
QAD gửi hôm 15.01.08 lúc 9:25 am #
@Nguyen Vu: Yep, còn khướt mới có sách :P
@htl: Mất công lắm anh giai ạ. Năm ngoái còn máu, giờ xịt rồi :”>
Thuc Nguyen gửi hôm 25.02.08 lúc 8:26 am #
Mình đang sử dụng cake 1.2. Nếu có tài liệu thì chia sẻ với nhé. Thanks!
Cao Van Danh gửi hôm 27.02.08 lúc 3:15 am #
Minh tim thay quyen nay
Beginning CakePHP: From Novice to Professional
http://www.amazon.com/Beginning-CakePHP-Professional-David-Golding/dp/1430209771
QAD gửi hôm 27.02.08 lúc 3:51 am #
@Cao Van Danh: Thanks :D
Quyển này phải tháng 7 mới xuất bản, nhưng nghe đâu viết về Cake 1.2, có khi tớ phải pre-order mới được ^^
Cao Van Danh gửi hôm 19.03.08 lúc 3:05 am #
order được thì send với hehe :D
Kiên Phạm gửi hôm 02.05.08 lúc 4:19 am #
thì ra là vậy, tớ chơi với cake 1 năm rồi bây giờ mới biết quá khứ :D. Sao có vẻ giống vụ mambo và joomla nhỉ, thôi fork qua cakeVN đi :D.
Thực ra lúc đầu tớ phải chọn cake vì support php 4 (chỗ là ứ chịu lên php5), chứ tớ thấy ZendFramework có tương lai hơn (có enterprise back support, Zend, IMB, Google..)
- Kiên
QAD gửi hôm 02.05.08 lúc 8:24 am #
@Kiên Phạm: Nhiều khi nó là tại “cái đầu tiên”. Tớ tiếp xúc với CakePHP trước nên thích framework này hơn các framework khác. Có khá nhiều so sánh giữa Cake và Zend, thường thì nói Cake là full stack framework còn Zend là glue framework - không ràng buộc mình bằng các convention. Làm quen với Cake tớ đâm ra khoái mấy cái automagic mà nó mang lại ;-)