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

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 đó.

Duane O'Brien, Phát triển PHP, Java, 自由职业者

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.


Cấp độ đóng góp cho developerWorks của
        tác giả

31 07 2009

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.

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 đã 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
  • 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 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.


Ứ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).

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.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Nguồn mở
ArticleID=416851
ArticleTitle=Khung công tác PHP, Phần 1: Bắt đầu với ba khung công tác phổ biến:
publish-date=07312009