PDF:

Khung công tác PHP, Phần 1: Bắt đầu với ba khung công
tác phổ biến:
Zend, symfony và CakePHP
Duane O'Brien
Phát triển PHP, Java
自由职业者
31 07 2009
Một vài năm gần đây, một trong những lời phê bình phổ biến nhất về PHP là nó không hỗ trợ
kiến trúc theo kiểu MVC. Mọi việc đã thay đổi. Và bây giờ ta có nhiều lựa chọn với các khung
công tác họ PHP. Loạt bài viết này sẽ xem xét ba khung công tác PHP được sử dụng rộng rãi là Zend, symfony và CakePHP — khảo sát sự tương đồng và khác biệt giữa chúng thông qua
xây dựng và mở rộng một ví dụ ứng dụng làm mẫu trong mỗi khung trong ba khung công tác
đó.
Xem thêm bài trong loạt bài này
Về loạt bài viết này
Loạt bài này được viết dành cho các nhà phát triển PHP, những người muốn bắt đầu sử dụng một
khung công tác, nhưng chưa khảo sát chi tiết các khung công tác có sẵn. Loạt bài này sẽ xem xét
tại sao ba khung công tác đang nói đến lại được lựa chọn, làm thế nào để cài đặt các khung công
tác đó và bạn sẽ xử lý tốt các ứng dụng kiểm thử mà bạn sẽ mở rộng trong mỗi khung công tác. Có
vẻ bạn sẽ có nhiều việc phải làm, nhưng bạn đừng lo — chúng tôi chia nhỏ chúng thành các phần
cho dễ sử dụng.
Phần 1 của loạt bài này trình bày phạm vi của bài viết, giới thiệu các khung công tác sẽ được nghiên
cứu, trình bày cách cài đặt chúng và phác ra ứng dụng thử nghiệm đầu tiên mà bạn sẽ xây dựng.
(Phù!)
Phần 2 hướng dẫn bạn cách xây dựng ứng dụng mẫu tại mỗi khung công tác, nêu bật sự tương đồng
và những sự khác biệt giữa chúng.
Phần 3 bắt đầu với việc mở rộng ứng dụng thử nghiệm, sau đó xử lý các ngoại lệ bất quy tắc. Tất cả
các khung công tác làm việc tốt khi chúng thực hiện những công việc mà chúng đã được thiết kế
để làm. Nhưng phải làm một việc gì đó mà khung công tác không được xây dựng để làm việc này
cũng là điều thường xảy ra trong mọi dự án. Bài viết này xem xét các trường hợp như vậy.
© Copyright IBM Corporation 2009
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Nhẫn hiệu đăng ký
Trang 1 của 10
developerWorks®
ibm.com/developerWorks/vn/
Phần 4 tập trung chủ yếu vào hỗ trợ Ajax. Việc sử dụng Ajax, bằng cách sử dụng các mã bản ngữ và
các thư viện của bên thứ ba, sẽ được khảo sát - cụ thể là cách mỗi khung công tác hành xử và chấp
nhận các thư viện phổ biến cụ thể như thế nào.
Phần 5 đề cập đến đến các công việc bên ngoài khung công tác. Một nhiệm vụ duy nhất được xác
định (tập kịch bản lệnh cập nhật hàng đêm) và quá trình hoàn thành nhiệm vụ này được khảo sát
tại mỗi khung công tác.
Về bài viết này
Bài viết này có rất nhiều nguyên liệu. Bạn phải chuẩn bị để tiến hành công việc một cách nhanh
chóng. Ta có ba khung công tác để khảo sát. Đó là ba khung công tác nào? Tại sao lại là ba khung
công tác này? Các khung công tác khác là gì? Tại sao không phải là những khung công tác khác
đó? Có quá nhiều câu hỏi! Nhưng bạn sẽ nhận được câu trả lời cho phần lớn các câu hỏi đó trước
khi bạn tiến hành cài đặt mỗi khung công tác. Sau đó bạn sẽ tìm hiểu về các ứng dụng thử nghiệm
được sử dụng trong các phần tiếp theo của loạt bài viết này. Ngay sau đó bạn sẽ bắt đầu biết được
các khung công tác khác nhau như thế nào và chúng đều cùng làm những công việc gì.
Yêu cầu về hệ thống
Trước khi bắt đầu, bạn cần phải có một môi trường mà bạn có thể làm việc trong đó. Các yêu cầu
này hoàn toàn tối thiểu:
1. Một máy chủ HTTP hỗ trợ các phiên làm việc (và tốt nhất là ở chế độ mod_rewrite) — Loạt
bài viết này sử dụng Apache V1.3 với chế độ mod_rewrite đã bật.
2. PHP V5.1.4 hoặc mới hơn — Không phải tất cả các khung công tác đang được khảo sát đòi
hỏi phải có phiên bản này của PHP, nhưng để dễ dàng hơn, tất cả các khung công tác sẽ sử
dụng cùng một bản cài đặt PHP. Loạt bài viết này sử dụng PHP phiên bản V5.2.3.
3. Bản cài đặt MySQL phiên bản tương đối mới — Một số tùy chọn cơ sở dữ liệu khác cũng có
sẵn và được hỗ trợ, nhưng cả loạt bài viết này lẫn ứng dụng mẫu sử dụng MySQL phiên bản
V5.0.37.
4. Một hệ điều hành hỗ trợ PHP phiên bản V5.2.4 hoặc mới hơn và MySQL — Linux® được sử
dụng trong loạt bài viết này. Nếu bạn sử dụng Windows®, bạn sẽ cần phải thực hiện một số
điều chỉnh hiển nhiên, đặc biệt là khi tạo các thư mục được đề cập dưới đây.
Một số yêu cầu cần có trước
Giả định rằng bạn đã biết PHP, thiết kế ứng dụng và biết cách làm việc với một cơ sở dữ liệu. Không
nhất thiết bạn phải đã sử dụng một khung công tác trước đó, nhưng chắc chắn bạn phải sẵn sàng để
nhảy vào cuộc với cả hai chân.
Khung công tác cho người chưa biết gì
Trước khi nói về những khung công tác nào được lựa chọn, ta cũng phải nói khung công tác là gì.
Ý tưởng đằng sau một khung công tác là để cung cấp một thiết kế mà bạn có thể sử dụng qua
nhiều ứng dụng. Tất cả các ứng dụng đều có một số thứ cơ bản chung — đặc biệt là một số loại
giao diện với cơ sở dữ liệu, một số lô gíc ứng dụng, một cái gì đó trình bày ứng dụng cho người sử
dụng. Nếu bạn đã viết nhiều ứng dụng PHP thì bạn sẽ biết chúng trông như thế nào. Có thể bạn đã
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 2 của 10
ibm.com/developerWorks/vn/
developerWorks®
viết một tập hợp các hàm hoặc một lớp, lớp này đọc và ghi dữ liệu từ cơ sở dữ liệu. Bạn có thể đã
sử dụng một máy tạo khuôn mẫu như Smarty để quản lý giao diện người dùng (UI) của bạn. Bạn
chắc chắn đã viết một bó mã PHP, các mã này làm một số việc như phân tích các đệ trình biểu mẫu
và đưa ra quyết định dựa trên dữ liệu đã gửi đến. Và nếu bạn đã viết nhiều ứng dụng, thì bạn có thể
thực hiện cùng những điều cơ bản đó lặp đi lặp lại, đôi khi lấy một mã từ một ứng dụng này để sử
dụng tại một ứng dụng khác.
Khung công tác được thiết kế để cung cấp một cấu trúc cho các thành phần phổ biến ấy (tương tác
cơ sở dữ liệu, tầng trình bày, lôgic ứng dụng) do vậy bạn dành ít thời gian hơn để viết mã giao diện
với cơ sở dữ liệu hoặc các giao diện tầng trình bày và dành nhiều thời gian hơn để viết chính các
ứng dụng. Các kiến trúc được biểu diễn qua việc phân chia một ứng dụng theo cách này được gọi
tắt là kiến trúc Model -View-Controller (MVC). Model (Mô hình) là dữ liệu của bạn, View (Xem) là
tầng trình bày của bạn và Controller (Điều khiển) là lô gíc ứng dụng hay lô gic nghiệp vụ. Việc thảo
luận đầy đủ về MVC nằm ngoài phạm vi của bài viết này, nhưng tôi khuyến khích bạn nghiên cứu
MVC và tìm hiểu chúng là những gì (xem mục Tài nguyên).
Chọn một khung công tác
Có sẵn một số khung công tác cho hầu hết các ngôn ngữ. Việc lựa chọn một khung công tác phù
hợp với nhu cầu của bạn có thể là khó, đặc biệt là nếu trước đây bạn chưa từng sử dụng bất kỳ
khung công tác nào. Trong khi các lời khuyên và các ý kiến đóng góp từ các đồng nghiệp và tác
giả đáng tin cậy của developerWorks có thể hữu ích trong lĩnh vực này, thì ta chỉ có một nguyên tắc
hướng dẫn cần phải tuân theo khi lựa chọn bất kỳ khung công tác nào, đó là: Một khung công tác
tốt đến mức nào là tùy thuộc mức độ tiết kiệm thời gian và công sức mà nó mang lại cho tất cả mọi
người. Một khung công tác sẽ là không tốt nếu nó hoạt động tốt cho bạn, nhưng làm tăng đáng kể
các yêu cầu trợ giúp. Một khung công tác không phải là một khung công tác tốt nếu nó dễ dàng để
hỗ trợ, nhưng gây trở ngại hơn là hỗ trợ sự phát triển của bạn. Một khung công tác là vô ích nếu nó
có vẻ tao nhã, nhưng lại gây ra các vấn đề về hỗ trợ và phát triển.
Khi chọn một khung công tác cho các dự án của mình, bạn hãy xem xét tất cả mọi người liên quan,
từ trên xuống dưới, và khi bạn đánh giá một khung công tác, thì bạn phải nghĩ trong đầu ảnh hưởng
của nó đối với người khác.
Khi bạn cân nhắc việc sử dụng một khung công tác, bạn hãy xem xét ứng dụng của mình một cách
kỹ lưỡng, và tự hỏi chính mình liệu bạn có cần một khung công tác hay không. Khung công tác
không phải là sự bắt buộc. Ứng dụng doanh nghiệp sẽ tiếp tục được viết mà không cần phải sử dụng
các khung công tác. Khung công tác sẽ giúp đỡ bạn trong dự án này hay không? Nó sẽ tiết kiệm
cho tất cả mọi người thời gian và công sức? Ứng dụng của bạn sẽ hoạt động tốt hơn trong một
khung công tác? Nó sẽ cung cấp cho bạn tính ổn định mà bạn đang thiếu? Nếu câu trả lời cho bất
kỳ những câu hỏi này là “Có”, thì bạn nên tính đến việc sử dụng một khung công tác. Nếu tất cả các
câu trả lời cho những câu hỏi này là “Không”, thì khung công tác sẽ chỉ làm phức tạp vấn đề.
Thật không may, khuôn khổ và những hạn chế về phạm vi của bài viết này không cho phép tôi nói
về tất cả các khung công tác PHP sẵn có. Loạt bài viết này tập trung vào ba khung công tác sau:
• Zend
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 3 của 10
developerWorks®
ibm.com/developerWorks/vn/
• symfony
• CakePHP
Các khung công tác đó được lựa chọn dựa trên nhiều nhân tố khác nhau, nhưng tốt nhất có thể xếp
chúng như là "Khung công tác mà ông chủ của bạn biết đến," "Khung công tác mà những người
khác đã cài đặt," và "Khung công tác mà người ta nói đến." Tôi khuyên các bạn nên nghiên cứu
CodeIgniter, Seagull, bộ công cụ các thành phần ứng dụng Web (WACT), PRADO, Zoop, PHP trên
Trax, hoặc bất kỳ một khung công tác nào trong số các khung công tác PHP khác có sẵn. Việc lựa
chọn khung công tác rất có tính chất cá nhân, giống như lựa chọn một ngôn ngữ để viết mã bằng
ngôn ngữ đó. Loạt bài viết này sẽ không bảo bạn rằng khung công tác nào tốt hơn, hoặc tệ hơn so
với các khung công tác khác. Ở nơi nào mà một khung công tác làm tốt một cái gì đó, thì nó sẽ
được nhắc đến. Ở nơi mà một khung công tác có vẻ khó sử dụng, thì điều này cũng được nhắc đến.
Thậm chí nếu chúng tôi không nói hết về vô số các khung công tác, thì phương pháp tiếp cận của
chúng tôi sẽ giúp bạn cân nhắc những thế mạnh và điểm yếu của các khung công tác. Bạn cần phải
hình thành ý kiến của riêng bạn về các khung công tác đang được xem xét, khung công tác nào
bạn thích, và khung công tác nào bạn quyết định theo đuổi.
Khung công tác Zend
Mọi người đều biết đến Zend — "Công ty cung cấp PHP." Khi bạn tải về và cài đặt PHP, đó là bạn
đang tải nó về từ Zend và bạn đã làm như vậy kể từ phiên bản V3 trở đi. Ngoài việc phân phối PHP,
Zend Technologies đã cung cấp một loạt các công nghệ hỗ trợ PHP từ nhiều năm nay. Bạn sẽ
không ngạc nhiên rằng Zend cung cấp khung công tác cho PHP — một khung công tác phổ biến
với 2 triệu lần tải về cho đến bây giờ. Nếu ông chủ của bạn đã nghe nói tới khung công tác PHP, thì
khung công tác Zend có khả năng là một trong những số khung đó.
Khung công tác symfony
Được Sensio tài trợ, symfony "nhằm mục đích tăng tốc độ tạo ra và bảo trì các ứng dụng web và
để thay thế các nhiệm vụ viết mã lặp đi lặp lại bằng các quyền năng, sự kiểm soát và niềm vui." Các
khung công tác symfony đã được sử dụng trên toàn thế giới trong nhiều ứng dựng ở mức độ doanh
nghiệp, có lẽ nổi tiếng nhất là tại các trang Askeet và Yahoo! Bookmarks. Tôi đánh cá là nếu ai đó
mà bạn biết đã cài đặt, sử dụng hoặc thử làm việc với một khung công tác PHP, thì khung công tác
đó phải là symfony.
Khung công tác CakePHP
Vay mượn rất nhiều từ khung công tác Ruby on Rails, CakePHP nhằm mục đích mang lại tính đơn
giản và tầm mở rộng cho khung công tác PHP. Luôn được công nhận là một khung công tác PHP
đứng đầu, CakePHP trong thời gian gần đây đã được chọn làm lõi của phiên bản V5 của hệ thống
quản lý nội dung Mambo. Được thúc đẩy bởi một cộng đồng mạnh và một nền tảng người sử dụng
tăng nhanh chóng, tính phổ biến của CakePHP gia tăng vững chắc. Nếu bạn đã tình cờ nghe ai nói
về khung công tác PHP, thì có lẽ là nói về khung công tác CakePHP.
Cài đặt
Mỗi khung công tác có riêng bộ hướng dẫn cài đặt và việc thảo luận tường tận về chi tiết cài đặt
nằm ngoài phạm vi của bài viết này. Mỗi cài đặt sẽ được nêu rõ, chỉ ra những điểm quan trọng có
thể không được nêu lên trong hướng dẫn cài đặt của mỗi khung công tác riêng biệt, hoặc là chỉ ra
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 4 của 10
ibm.com/developerWorks/vn/
developerWorks®
những điểm cần làm khác với chỉ dẫn cài đặt chung vì ta muốn cài đặt cả ba khung công tác trên
một máy tính.
Bạn bắt đầu bằng cách tạo ra một thư mục để chứa tất cả các mã, khung công tác và các thứ khác
mà bạn sẽ cần cho loạt bài viết này (ví dụ một thư mục có tên là /column). Tại thư mục này, bạn tạo
ra thêm bốn thư mục phụ: htdocs, protected, include và src. Bạn sửa lại tệp tin cấu hình Apache sao
cho thư mục gốc của tài liệu trỏ đến /column/ htdocs — và khi bạn ở địa chỉ này (nếu bạn chưa ở
địa chỉ đó), bạn sẽ bật kích hoạt chế độ mod_rewrite. Bạn biên tập tệp tin cấu hình php.ini để đưa
thêm thư mục /column/include/ vào dòng lệnh include_path. Bạn đừng vội lo đến ý nghĩa của những
thao tác này. Khi bạn cài đặt các khung công tác, mọi việc sẽ trở nên rõ ràng.
Cài đặt khung công tác Zend
Tải về khung công tác Zend (xem mục Tài nguyên). Loạt bài viết này sử dụng phiên bản V1.0.1. Tải
về và giải nén khung công tác Zend vào thư mục /column/src. Bản phân phối sẽ chứa một số các
tệp tin văn bản và ba thư mục: demos, tests và library. Bạn sao chép nội dung của thư mục library
(thư mục này nên được đặt tên là Zend) vào thư mục column/include/. Bây giờ bạn sẽ có một thư
mục có tên /column/include/Zend, chứa một số lượng các thư mục và têp tin. Đây là các thư viện
được khung công tác Zend sử dụng.
Xong rồi! Bạn đã cài đặt thành công khung công tác Zend.
Cài đặt khung công tác symfony
Tải về khung công tác symfony (xem mục Tài nguyên). Bạn được tự do cài đặt symfony thông qua
bất kỳ phương pháp nào được liệt kê trên trang tải xuống, thế nhưng để phục vụ cho mục đích của
chúng ta, chúng tôi khuyên bạn tải xuống tệp đóng gói (tarball). Bạn giải nén tệp tin tarball vào thư
mục /column/src/symfony/. Bạn nhận được bốn thư mục (data, doc, lib và licenses), cũng như một
số tài liệu README. Không phải tất cả chúng đều là cần thiết cho việc cài đặt một ứng dụng đã
hoàn thành, nhưng bây giờ thế sẽ là ổn. Điều này có vẻ quá đơn giản cho tiến trình cài đặt. Bạn hãy
ghi nhớ rằng các khung công tác nói chung gồm có các tiện ích và thư viện, do đó, cài đặt chúng
không phải là khó khăn. Để sử dụng chúng sẽ cần cấu hình thêm một chút. Điều này sẽ được trình
bày rõ ở phần sau.
Không phải tất cả mọi người đều có tùy chọn sử dụng bản cài đặt PHP mở rộng và kho chứa ứng
dụng (PHP Extension and Application Repository - PEAR) trong môi trường của họ, đó là lý do tại
sao chúng tôi quy về phương pháp cài đặt nói ở trên. Tuy nhiên, nếu bạn có thể sử dụng PEAR,
bằng tất cả các cách, thì bạn nên sử dụng. Cả hai phương pháp này được mô tả trên trang cài đặt
symfony (xem mục Tài nguyên).
Cài đặt khung công tác CakePHP
Tải về khung công tác CakePHP (xem mục Tài nguyên). Loạt bài này sử dụng phiên bản
1.2.0.5427alpha. Nhánh 1.2 của CakePHP, mặc dù chúng còn là bản alpha hoàn thiện, đã được
cộng đồng CakePHP chấp nhận rộng rãi như là một quy chuẩn. Bạn tải về và giải nén tệp tin tarball
vào /column/src/cakephp. Bạn sẽ nhận được bốn thư mục (app, cake, doc, và vendors) cũng như
hai tập tin (. Htaccess và index.php). Sau này bạn sẽ di chuyển một số tệp tin, nhưng bây giờ thì thế
là được.
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 5 của 10
developerWorks®
ibm.com/developerWorks/vn/
Ứng dụng thử nghiệm
Bạn đã tải về và cài đặt ba khung công tác. Tuy nhiên, bạn sẽ nhận thấy rằng bạn còn chưa thực sự
làm bất cứ điều gì với chúng, kiểu như kiểm tra các cài đặt bằng ứng dụng Hello World. Đó là vì bạn
sẽ nhảy qua ứng dụng Hello World và tạo ra một cái gì đó có da thịt hơn một tí (và chỉ thế thôi).
Xây dựng ứng dụng Hello World tại khung công tác PHP có thể là hơi khó. Sử dụng khung công tác
kéo theo một số chi phí tăng thêm, và chi phí tăng thêm sẽ cản trở khi bạn đang cố gắng để làm
một cái gì đó đơn giản như ứng dụng Hello World. Tuy nhiên cũng chi phí ấy dường như trở nên
xứng đáng khi bạn làm việc với các ứng dụng phức tạp hơn.
Ứng dụng thử nghiệm mà bạn sẽ xây dựng còn chưa có gì nhiều. Nó sẽ cho phép bạn gửi văn bản
đến các ứng dụng bằng cách sử dụng một vùng văn bản. Văn bản đó sẽ được ghi lưu tại một cơ sở
dữ liệu và được lấy ra bởi một ứng dụng để hiển thị theo yêu cầu. Bằng cách sử dụng một ứng dụng
như vậy, ta có thể dễ dàng tạo và cập nhật nội dung trên trang web mà không cần phải chỉnh sửa
mã HTML hoặc tải lên các tập tin mới. Ứng dụng rất sáng tạo và khai phá này được gọi là Blahg.
Blahg trông như thế nào?
Dựa trên mô tả của Blahg, có lẽ bạn đã suy diễn ra một vài điều về cách ứng dụng sẽ được thiết kế
như thế nào. Blahg cần bốn yếu tố:
1. Một trang có chứa một biểu mẫu — Biểu mẫu này sẽ phải có ít nhất một vùng văn bản. Trang
này sẽ là trang ghi.
2. Một trang đọc dữ liệu gửi lên — Trang web này sẽ nhận được một kiểu mã nhận dạng (ID) nào
đó của dữ liệu gửi lên. Trang này sẽ là trang đọc.
3. Một trang liệt kê các dữ liệu gửi lên có sẵn — Trang này sẽ là trang index.
4. Một bảng của cơ sở dữ liệu để chứa các dữ liệu gửi lên — Bảng này ít nhất sẽ chứa văn bản gửi
lên và mã nhận dạng dữ liệu gửi lên, và có thể thêm tiêu đề cũng như ngày giờ sửa đổi cuối
cùng của dữ liệu gửi lên.
Rõ ràng là Blahg có thể vững chãi hơn thế nhiều, và ở phần sau của loạt bài này bạn sẽ thực hiện
một số cải tiến. Nhưng bây giờ, chỉ những yêu cầu đơn giản ấy là đủ. Thật không may, bạn còn chưa
có cơ hội để xây dựng Blahg tại bất kỳ khung công tác nào. Nó sẽ đến trong Phần 2. Nhưng bây giờ
là lúc thích hợp để thiết lập cơ sở dữ liệu mà bạn sẽ sử dụng.
Thiết lập các cơ sở dữ liệu
Trước khi bạn có thể thực sự xây dựng Blahg, bạn cần phải thiết lập cơ sở dữ liệu. Không nhất thiết
phải thiết lập một cơ sở dữ liệu cho mỗi khung công tác riêng biệt, nhưng phục vụ cho mục đích của
loạt bài viết này, điều này sẽ giúp giữ cho mọi thứ có tổ chức hơn, tránh cho bạn không phải thêm
phần tiền tố vào tên bảng.
Bạn hãy tạo ba cơ sở dữ liệu, đặt tên chúng là Zend, symfony và Cake và cấp đầy đủ các quyền đối
với mỗi cơ sở dữ liệu cho người sử dụng thích hợp. Các hướng dẫn cho mỗi khung công tác dưới
đây sẽ chứa các SQL cần thiết để tạo ra bảng “posts” (các dữ liệu gửi lên).
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 6 của 10
ibm.com/developerWorks/vn/
developerWorks®
Ngay khi bạn đang thử các cơ sở dữ liệu, bạn cũng có thể tạo ra các bảng mà Blahg sẽ sử dụng lúc
ban đầu. Bạn hãy tạo một bảng “posts” trong cơ sở dữ liệu của Zend và symfony bằng cách sử dụng
các SQL sau đây.
Liệt kê 1. Tạo bảng posts trong Zend và symfony
CREATE TABLE 'posts' (
'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'title' VARCHAR( 255 ) NOT NULL ,
'text' TEXT NOT NULL ,
'modified' TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = MYISAM ;
Đối với Zend và symfony, bạn sẽ để lại cho cơ sở dữ liệu chịu trách nhiệm bảo trì các cột đã sửa
đổi. Đối với CakePHP, bạn sẽ sử dụng SQL hơi khác một chút. Làm như thế sẽ cho phép Cake thực
hiện một số thủ thuật thay cho bạn (đặc biệt là CakePHP sẽ duy trì các cột được sửa đổi một cách
tự động.)
Liệt kê 2. Tạo bảng “posts” trong CakePHP
CREATE TABLE 'posts' (
'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'title' VARCHAR( 255 ) NOT NULL ,
'text' TEXT NOT NULL ,
'modified' DATETIME DEFAULT NULL
) ENGINE = MYISAM ;
Đây đơn giản chỉ là những gì mà cú pháp tạo bảng có thể làm được. Dựa trên dáng vẻ các bảng này
trông ra sao, bạn có thể có một hình ảnh khá rõ ràng Blahg trông như thế nào và làm việc ra sao.
Thậm chí bạn có thể thử bằng cách tự mình tạo ra Blahg.
Các bước tiếp theo
Bạn hãy cưỡng lại sự cám dỗ để nhảy vào cuộc và bắt đầu đùa nghịch với khung công tác ngay lập
tức. Thay vào đó, bạn giành chút thời gian và tạo Blahg mà không sử dụng bất kỳ khung công tác
nào. Bạn viết nó theo cách thức mà bạn quen để viết các ứng dụng của mình, bất cứ cách nào có
thể. Bạn hãy bám sát các yêu cầu được liệt kê ở trên khi xây dựng Blahg — bạn đừng vội trang
hoàng quá. Thông qua xây dựng các ứng dụng thử nghiệm bên ngoài bối cảnh của một khung công
tác và sửa đổi các ứng dụng để thực hiện các cải tiến mà bạn xây dựng trong suốt loạt bài viết này,
bạn có thể tạo cho mình một thước đo tốt để đánh giá một khung công tác đã cho phù hợp với nhu
cầu của bạn đến mức nào và khung công tác đã cho thích hợp với phong cách phát triển của bạn
như thế nào.
Tóm tắt
Ở đây chúng ta đã đề cập đến nền tảng. Tôi hy vọng là việc cài đặt của bạn diễn ra trôi chảy, nhưng
nếu bạn gặp bất kỳ vấn đề nào, bạn nên đào sâu các tài liệu hướng dẫn cài đặt cho mỗi khung công
tác tương ứng (Xem mục Tài nguyên). Hãy dành thời gian để xây dựng các Blahg theo các hướng
dẫn ở trên. Thời gian bỏ ra là xứng đáng.
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 7 của 10
developerWorks®
ibm.com/developerWorks/vn/
Tài nguyên
Học tập
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Đọc phần còn lại của loạt bài viết "Khung công tác PHP".
Đọc sổ tay Khung công tác Zendl.
Tải về Tài liệu hướng dẫn về khung công tác symfony.
Xem sổ tay Khung công tác CakePHP (Lưu ý: tài liệu này được viết cho CakePHP phiên bản
V1.1. Có thể có một số khác biệt vì bạn đang sử dụng CakePHP phiên bản v1.2).
Đọc loạt bài gồm năm phần "Chế biến trang web nhanh với CakePHP."
Xem trang Wikipedia để có cái nhìn khái quát về các khung công tác phần mềm.
Xem tổng quan về Các kiến trúc MVC tại Wikipedia.
Tham khảo Các sổ tay PHP để biết thêm thông tin.
Xem trang PHP.net để có thêm tài liệu hướng dẫn về PHP.
Để được hướng dẫn học lập trình với PHP, xem các loạt bài viết "Học PHP" của
developerWorks.
PHP.net là tài nguyên chủ yếu cho các nhà phát triển PHP.
Xem mục "Danh sách các bài nên đọc về PHP."
Duyệt qua tất cả các nội dung về PHP trên developerWorks.
Phát triển các kỹ năng PHP của bạn bằng cách tham khảo các tài nguyên của dự án PHP trên
trang developerWorks của IBM.
Để nghe các phỏng vấn và các cuộc thảo luận thú vị cho các nhà phát triển phần mềm, hãy
xem developerWorks podcasts.
Bạn sử dụng cơ sở dữ liệu với PHP? Hãy thử Zend Core for IBM, đó là một môi trường phát
triển và chạy sản suất PHP liền khối, sẵn để dùng ngay, dễ dàng cài đặt và có hỗ trợ DB2 V9
của IBM.
Theo dõi sát các sự kiện kỹ thuật và phát tin trên Web của developerWorks.
Xem thông tin về các hội nghị sắp tới, các triển lãm thương mại, các tin phát trên web, và Các
sự kiện đang là mối quan tâm của các nhà phát triển mã nguồn mở của IBM.
Xem trang Vùng mã nguồn mở của developerWorks để có nhiều thông tin về các mục “làm
thế nào”, các công cụ và các dự án được cập nhật để giúp bạn phát triển với các công nghệ
mã nguồn mở và sử dụng chúng với các sản phẩm của IBM.
Theo dõi và tìm hiểu về IBM và các công nghệ mã nguồn mở và các chức năng sản phẩm trên
trang web miễn phí: Trình chiếu theo yêu cầu của developerWorks..
Lấy sản phẩm và công nghệ
Tải về khung công tác PHP V5.2.3.
Tải về khung công tác symfony.
Tải về khung công tác CakePHP.
Đổi mới dự án phát triển mã nguồn mở tiếp theo của bạn với các phần mềm dùng thử của
IBM, có sẵn để tải về hoặc trên đĩa DVD.
• Tải về phiên bản đánh giá sản phẩm của IBM, và thực hành các công cụ phát triển ứng dụng
và sản phẩm phần mềm nằm giữa (Middleware) từ DB2®, Lotus®, Rational®, Tivoli® và
WebSphere®.
•
•
•
•
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 8 của 10
ibm.com/developerWorks/vn/
developerWorks®
Thảo luận
• Tham gia vào developerWorks blogs và dành tâm trí cho cộng đồng developerWorks.
• Tham dự Diễn đàn PHP trên developerWorks: Phát triển các ứng dụng PHP với các sản phẩm
quản lý thông tin của IBM (DB2, IDS)..
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 9 của 10
developerWorks®
ibm.com/developerWorks/vn/
Đôi nét về tác giả
Duane O'Brien
Duane O'Brien là một nhà khoa học máy tính. Ông đã có nhiều bài viết về phát triển
ứng dụng web và về các framework PHP khác nhau. Để tìm hiểu thêm về Duane, bạn
xem trang blogtwitter của ông.
© Copyright IBM Corporation 2009
(www.ibm.com/legal/copytrade.shtml)
Nhẫn hiệu đăng ký
(www.ibm.com/developerworks/vn/ibm/trademarks/)
Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ
biến:
Trang 10 của 10