« Home « Kết quả tìm kiếm

XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC


Tóm tắt Xem thử

- Khóa luận tốt nghiệp này trình bày một số hiểu biết cơ bản về các nền tảng hỗ trợ lập trình ứng dụng web (Web application framework) và mô hình MVC (Model View Controller) cũng như vai trò của các thành phần MVC trong Web framework.
- Phần chính của khóa luận tập trung giải thích phương thức vận hành của ứng dụng được xây dựng bằng Hiphop, bước đầu giúp các nhà phát triển nắm được cách thức xây dựng ứng dụng trên Hiphop.
- Phần cuối của khóa luận giới thiệu các thư viện, hàm tích hợp trong Hiphop hỗ trợ người lập trình trong quá trình phát triển ứng dụng MỤC LỤC.
- CÁC KHÁI NIỆM BAN ĐẦU KHI XÂY DỰNG ỨNG DỤNG WEB BẰNG HIPHOP FRAMEWORK.
- CHƯƠNG 4: HỆ THỐNG CÁC LỚP THƯ VIỆN 30VÀ HÀM HỖ TRỢ.
- 304.1 Các lớp thư viện.
- 28Hình 3 3: blogview.php.
- 28Hình 3.4: header_view.php.
- Trong những năm gần đây, các ứng dụng web lớn liên tục được tạo ra, đánh dấu những bước phát triển nhảy vọt về công nghệ trong thế giới lập trình.
- Các nền tảng hộ trợ lập trình cũng được xây dựng hàng loạt nhằm mục đích chính là cải thiện tốc độ thực thi và nâng cao tính bảo mật cho các ứng dụng web.
- Các nền tảng hỗ trợ lập trình ứng dụng (application framework) đều chứa đựng các kinh nghiệm của các nhà kiến trúc phần mềm sau nhiều năm chiêm nghiệm trong thế giới lập trình..
- Với nỗ lực làm giảm thời gian phát triển một ứng dụng web, bằng việc học hỏi và tiếp thu những ưu điểm của các framework hiện nay, chúng tôi đã xây dựng được một nền tảng hỗ trợ lập trình các ứng dụng web được viết bằng ngôn ngữ PHP.
- “Web application framework” là một nền tảng phần mềm được thiết kế để hỗ trợ việc phát triển các website động, các ứng dụng web và các dịch vụ web.
- Nội dung khóa luận đề cập tới PHP Framework là do PHP là ngôn ngữ rất linh hoạt, được các lập trình viên ưa chuộng sử dụng khi tiến hành xây dựng các ứng dụng web cỡ lớn (Facebook, Flickr, Twitter.
- Nhưng chính tính linh hoạt, dễ học, dễ sử dụng của PHP đôi khi làm các lập trình viên chủ quan, thường chỉ chú ý tới việc ứng dụng của mình chạy được hay không mà không quan tâm tới tính sáng sủa trong việc tổ chức mã phục vụ cho mục đích bảo trì dài lâu.
- Chưa kể tới việc vấn đề an toàn, bảo mật cho ứng dụng web ngày càng bị xem nhẹ.
- Sự có mặt của PHP framework làm cho việc phát triển ứng dụng web trở nên trôi chảy hơn bằng việc cung cấp một cấu trúc cơ bản để xây dựng những ứng dụng đó.
- Không chỉ thể, các framework còn đặc biệt hữu ích với những lập trình viên ít kinh nghiệm, giúp họ có thể xây dựng các ứng dụng mang tính chuẩn hóa hơn nhờ việc tương tác chính xác giữa việc xử lý cơ sở dữ liệu (database), mã PHP và giao diện (HTML) một cách riêng biệt..
- Các PHP framework hiện nay hầu hết đều cung cấp sẵn các module nền tảng cần thiết và thư viện mã lệnh chuẩn (kết nối database, quản lý session, template engine…) để xây dựng ứng dụng.
- Kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều thư viện đồ họa khác nhau.
- Request: xử lý một phần dữ liệu đầu vào ở mức GET, POST + Session: xử lý một phần dữ liệu đầu vào ở mức SESSION Tùy theo dữ liệu đầu vào, Controller sẽ thực hiện các phép lọc (với dịch vụ lấy từ Model), các tính toán lựa chọn (Action Mapping) dựa trên kiến trúc và cấu hình nhằm xác định thành phần lớp chính sẽ thực hiện yêu cầu của người dùng.
- Nó nhận dữ liệu nhập vào qua View, sau đó gọi Model tương ứng rồi lấy kết quả trả về từ Model này.
- Controller sẽ chuyển tiếp dữ liệu vào view để nó xử lý.
- Tạo form, gửi tin nhắn đến form để yêu cầu kiểm tra dữ liệu.
- Tạo các dịch vụ liên quan đến nghiệp vụ ứng dụng, yêu cầu các lớp dịch vụ tương tác với nguồn dữ liệu để trả về hay thay đổi trạng thái dữ liệu: thực hiện các thao tác chuyển đổi dữ liệu, kiểm tra quyền truy cập trên một hoạt động cụ thể, tương tác với database, tương tác với các web services..
- Tạo đối tượng view, gán các nguồn dữ liệu lấy được từ đối tượng dịch vụ vào cho view..
- M - Model Model là các lớp cung cấp dữ liệu, dịch vụ liên quan đến dữ liệu và các vấn đề xử lý logic nghiệp vụ.
- Đánh giá tính hợp lệ của dữ liệu.
- Ví dụ kiểm tra dữ liệu vào có đúng với nguyên tắc của hệ thống không · Chuyển đổi dữ liệu.
- Ví dụ đưa ra các dữ liệu, lời khuyên tư vấn đầu tư dựa trên dữ liệu đầu vào của người dùng và các dữ liệu đang có · Thực hiện việc xử lý dữ liệu theo một quy trình.
- Vùng xử lý dữ liệu: Cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu thành các dạng khác nhau theo yêu cầu Trong các tình huống đơn giản, Model chỉ làm vài thao tác đơn giản như lấy dữ liệu từ database.
- Trong các tình huống phức tạp, việc xử lý có thể là tổ hợp của hàng trăm lớp diễn ra trên một hoặc vài máy chủ (server) hoặc thậm chí dữ liệu hay quyết định được đưa ra từ Model lại là tổng hợp kết quả từ một vài trung tâm dữ liệu nằm rải rác trên vài lục địa.
- V - View View là các lớp định nghĩa cách thức trình bày dữ liệu (không cập nhật dữ liệu).
- Template file: định nghĩa cấu trúc và cách thức trình bày dữ liệu cho người dùng.
- Phần Logic: xử lý cách áp dụng dữ liệu vào cấu trúc trình bày.
- Logic này có thể bao gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một sạng dữ liệu trung gian để có thể hiển thị với cấu trúc template đang có.
- kiểm tra trạng thái và đặc tính của dữ liệu để lựa chọn một cấu trúc hiện thị phù hợp..
- Trong mô hình truyền thống, View có trách nhiệm chuyển đổi dữ liệu hay trạng thái của Model thành cấu trúc trực quan.
- Do vậy dữ liệu của Model cần được định nghĩa một cách hợp lý.
- Sự tách biệt của hai thành phần này sẽ giúp cho người lập trình phân định được một biên giới rõ ràng giữa cách thức lưu trữ/lấy dữ liệu và cách trình bày dữ liệu.
- Do vậy tính phức tạp của quy trình lấy dữ liệu, xử lý dữ liệu cũng như (sự thay đổi của chúng theo thời gian) trước khi trả về sẽ không làm ảnh hưởng đến việc trình bày dữ liệu.
- Rõ ràng sự khác biệt về công nghệ lấy dữ liệu và công nghệ sinh trang không gây ảnh hưởng đến ứng dụng.
- Điều này khá quan trọng trong việc tích hợp các ứng dụng.
- Ngoài ra, cách làm này thực sự đảm bảo việc tách biệt vai trò của người thiết kế giao diện với vai trò của lập trình viên thiên về dữ liệu.
- Như vậy khi làm việc theo nhóm, người quản trị dự án có thể tổ chức nhóm phát triển thành các nhóm kĩ năng và phát triển ứng dụng song song với nhau..
- Đặc trưng của phần này là tận dụng một cách triệt để kiến thức, kỹ năng của các lập trình viên liên quan tới thuật toán xử lý dữ liệu, quản trị cơ sở dữ liệu....
- Thiết kế (design): Các nhà thiết kế làm việc trực tiếp với lớp View, chịu trách nhiệm tạo ra "cảm quan" cho ứng dụng.
- Người hợp nhất không cần có nhiều kinh nghiệm làm việc với dữ liệu như lập trình viên nhưng cần nắm rõ cách tổ chức của một ứng dụng..
- Không giống như Symfony, PHP framework này phục vụ mục đích lý tưởng cho việc xây dưng các ứng dụng chia sẻ, lưu trữ.
- Hiphop framework là một PHP5 framework được viết ra nhằm mục đích tận dụng mọi ưu điểm của mô hình MVC trong việc xây dựng các ứng dụng web động bằng ngôn ngữ PHP.
- Hiphop giúp các lập trình viên tạo nên các ứng dụng web có kiến trúc sáng sủa, dễ bảo trì và dễ mở rộng.
- Bên cạnh đó, Hiphop cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn rất nhiều so với việc viết mã thuần túy bằng cách cung cấp một bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thư viện đó..
- Hiphop mang theo một triết lý riêng về tổ chức ứng dụng web từ mô hình MVC cho đến kiến trúc phân cấp Controller.
- Kiến trúc MVC hiện đại: mô hình dữ liệu (Model), điều khiển ứng dụng (Controller), chức năng hiển thị (View).
- Khả năng tổ chức ứng dụng thành các lớp Controller đa tầng, giúp ứng dụng có tính module hóa.
- Thư viện hỗ trợ caching.
- Nơi lưu trữ ứng dụng của bạn.
- Controller: chứa các Controller của ứng dụng.
- Model: chứa các Model của ứng dụng.
- View: chứa các View của ứng dụng Config.
- Autoload: liệt kê các helper, library, model tự động load khi ứng dụng khởi động.
- Chứa các thư viện hỗ trợ xử lý các vấn đề nghiệp vụ Hiphop.
- Chứa các lớp xử lý truy xuất tới các hệ quản trị cơ sử dữ liệu khác nhau.
- Trước hết ta cần tìm hiểu quy trình xử lý một HTTP request của ứng dụng viết bởi PHP framework.
- Output object (khởi tạo từ class Output trong system/libraries/Output.php) Cũng là đối tượng được khởi tạo trong index.php với mục đích cập nhật luồng dữ liệu HTML được tạo ra từ các View.
- Nạp các thư viện hàm hỗ trợ (helpers) được yêu cầu function library().
- class Controller (system/libraries/Controller.php).
- Là lớp Controller cơ sở, làm nên sự khác biệt về mặt tổ chức code của ứng dụng trên Hiphop framework so với các framework khác.
- Mọi lớp Controller trong ứng dụng của bạn đều phải thừa kế từ lớp Controller cơ sở..
- Database (system/libraries/Database.php).
- Các hệ quản trị cơ sở dữ liệu mở mạnh mẽ và phong phú: OCI (Oracle đóng góp), DB2 (IBM đóng góp), libmysql (MySQL AB đóng góp), pgsql do cộng đồng PostgreSQL đóng góp và luôn hỗ trợ các bản database mới nhất.
- Hiphop framework cung cấp một thư viện giao tiếp với MySql - hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng khi lựa chọn giải pháp lưu trữ thông tin.
- Các thư viện – Library (các class đặt trong thư mục system/libraries).
- Hiphop cung cấp một tập hợp các thư viện hỗ trợ lập trình đa dạng, giúp các lập trình viên xây dựng ứng dụng web nhanh và hiệu quả hơn.
- Không giống với Library, Helper không phải là một class hướng đối tượng, chỉ là một file chứa một hoặc nhiều hàm cùng tập trung hỗ trợ một nhiệm vụ cụ thể trong quá trình xây dựng ứng dụng.
- Giá trị của biến route được truyền qua chuỗi truy vấn (query string) được coi như dữ liệu vào, Hiphop framework dùng giá trị này để xác định Controller nào sẽ được gọi để thực hiện yêu cầu của người dùng.
- Ví dụ: yousite.com/index.php?route= blog/detail/123.
- Các controller đóng vai trò mấu chốt trong những ứng dụng xây dựng bằng Hiphop framework.
- Ví dụ: file header.php chứa class Header.
- yoursite.com/index.php?route=blog/.
- Chúng ta sẽ tìm hiểu cách thức tạo ra một lớp Controller thực sự trong một ứng dụng.
- Đây là các ràng buộc mà các lập trình viên phải tuân thủ khi xây dựng các ứng dụng để Hiphop framework hiểu và hỗ trợ.
- Hình 3.0.3 blogview.php.
- Ví dụ, để quản lý một Blog, bạn cần có một lớp model chứa các hàm làm các nhiệm vụ như: thêm, sửa, xóa hoặc đọc các dữ liệu bài viết.
- Dưới đây là ví dụ về một lớp controller, lấy dữ liệu từ Model và truyền vào View.
- CHƯƠNG 4: HỆ THỐNG CÁC LỚP THƯ VIỆN.
- Hệ thống lớp thư viện và hàm hỗ trợ trong Hiphop giúp các lập trình viên thao tác trong việc xây dựng ứng dụng của mình nhanh và hiệu quả hơn.
- Chương này giới thiệu đầy đủ các lớp thư viện (library) và các hàm trợ giúp trong Hiphop cũng như cách thức sử dụng chúng trong quá trình xây dựng ứng dụng..
- 4.1 Các lớp thư viện.
- Lý do mảng $db phải ở dạng hai chiều có liên quan tới tính năng hỗ trợ nhiều kết nối tới nhiều cơ sở dữ liệu của Hiphop framework.
- Ví dụ, trong ứng dụng của bạn cần tới một kết nối tới database khác, chỉ cần thêm thiết đặt sau vào file database.php bên trên:.
- $sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";.
- yoursite.com/index.php?route=blog/entry/123.
- http://yoursite.com/index.php?route=blog/entry/123.
- Url có thể có dạng: yourblog.com/index.php?route=home/index.
- Ta cần một model để đảm nhiệm việc truy xuất dữ liệu trong database.
- Như đã nói ở trên, mọi class liên quan tới ứng dụng do lập trình viên triển khai phải được đặt trong thư mục system/application.
- Qua khóa luận này giới thiệu cách thức sử dụng và vận hành của một ứng dụng được viết bằng Hiphop framework.
- Bên cạnh đó, triển khai xây dựng thêm nhiều lớp thư viện và và hàm hỗ trợ nhằm cung cấp cho các lập trình viên công cụ xây dựng ứng dụng web mạnh mẽ hơn, phong phú hơn..
- www.php.net