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

46 493 0
LUẬN VĂN:XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC pot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Xuân Thăng XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN HÌNH MVC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Xuân Thăng XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN HÌNH MVC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hướng dẫn: TS.Trương Ninh Thuận HÀ NỘI - 2010 LỜI CẢM ƠN Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành tới thầy giáo, Tiến sĩ Trương Ninh Thuận, người đã hướng dẫn và chỉ bảo tận tình cho tôi trong suốt quá trình học tập cũng như thực hiện khóa luận tốt nghiệp này. Tôi cũng xin cảm ơn các thầy, cô giáo đã chỉ dạy trong suốt thời gian gian tôi học tập tại trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. Cảm ơn các bạn Hoàng Đình Quang, Nguyễn Văn Vũ, Phan Trọng Khanh, Đàm Thanh Tùng, những người bạn tốt đã giúp đỡ tôi về mặt kỹ thuật trong quá trình nghiên cứu, xây dựng sản phẩm được trình bày trong khóa luận tốt nghiệp này. Ngoài ra, tôi muốn gửi lời cám ơn tới bố mẹ, người thân trong gia đình - những người đã hết sức ủng hộ, giúp đỡ và động viên tôi trong suốt quá trình học tập đã qua. Cuối cùng, tôi xin gửi lời cám ơn chân thành và sâu sắc tới Ban Giám đốc công ty TNHH ISDS đã tạo mọi điều kiện về cơ sở vật chất giúp tôi hoàn thành khóa luận này. TÓM TẮT KHÓA LUẬN 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à hình MVC (Model View Controller) cũng như vai trò của các thành phần MVC trong Web framework. Qua đó giới thiệu một framework tự xây dựng bằng ngôn ngữ PHP với các ưu điểm về cấu trúc và tốc độ so với các PHP framework hiện nay. Framework được đặt tên là Hiphop 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 5 MỤC LỤC CHƯƠNG 1: KHÁI NIỆM VỀ WEB APPLICATION FRAMEWORK VÀ HÌNH MVC 8 1.1 Web Application Framework là gì? 8 1.2. PHP Framework 8 1.3 MVC là gì? 9 1.3.1. Lịch sử MVC 9 1.3.2. Vai trò của các thành phần M-V-C trong Web framework 10 CHƯƠNG 2. GIỚI THIỆU FRAMEWORK ĐÃ XÂY DỰNG 15 2.1. Tổng quan về framework đã xây dựng 15 2.2. Kiến trúc của Hiphop framework 18 2.2.1 Tổng quát về hệ thống thư mục trong Hiphop framework 18 2.2.2 Các thành phần cốt lõi 19 CHƯƠNG 3. CÁC KHÁI NIỆM BAN ĐẦU KHI XÂY DỰNG ỨNG DỤNG WEB BẰNG HIPHOP FRAMEWORK 25 3.1. Hiphop URLs 25 3.2. Các lớp Controller 25 3.3. View - Template 27 3.4. Các lớp Model 30 CHƯƠNG 4: HỆ THỐNG CÁC LỚP THƯ VIỆN VÀ HÀM HỖ TRỢ 32 4.1 Các lớp thư viện 32 4.1.1. Email library 32 4.1.2. Database library 33 4.1.3. Phân trang với Pagination class 35 4.1.4. Quản lý Session PHP với session class 35 4.1.5. Tạo hình ảnh Captcha với Captcha class 35 4.1.6. Tải file lên server với Upload class 35 4.1.7. Tải file với giao thức FTP - FTP class 35 4.2 Các Helper 38 4.2.1. Array Helper 38 4.2.2. Text Helper 38 4.2.3. URL helper 40 CHƯƠNG 5: ÁP DỤNG HIPHOP FRAMEWORK XÂY DỰNG TRANG BLOG CÁ NHÂN 41 KẾT LUẬN 45 6 DANH SÁCH CÁC HÌNH ẢNH Hình 1 1: hình MVC 9 Hình 1 2: Biểu đồ tuần tự một chuỗi MVC đơn giản Error! Bookmark not defined. Hình 2 1: hình MVC được áp dụng trong Hiphop frameworkError! Bookmark not defined. Hình 2 2: Cấu trúc cây thư mục Hiphop framework Error! Bookmark not defined. Hình 2 3: Quy trình xử lý một HTTP request - Hiphop frameworkError! Bookmark not defined. Hình 2 4: phỏng cấu trúc các thành phần cốt lõi trong Hiphop framework Error! Bookmark not defined. Hình 2 5: Lớp Registry 20 Hình 2 6: Lớp Router 21 Hình 2 7: Lớp Output 21 Hình 2 8: Lớp Loader 21 Hình 2 9: Lớp Controller 22 Hình 3 1: Ví dụ một URL Hiphop framework Error! Bookmark not defined. Hình 3 2: Minh họa Sơ đồ phân cấp controller trang webError! Bookmark not defined. Hình 3 3: blogview.php Error! Bookmark not defined. Hình 3.4: header_view.php Error! Bookmark not defined. Hình 5 1: Giao diện Blog 41 7 LỜI MỞ ĐẦU 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. Khóa luận này trình bày các khái niệm cần thiết trước khi bắt tay xây dựng một nền tảng lập trình, đồng thời giới thiệu nền tảng mà chúng tôi đã xây dựng thành công. 8 CHƯƠNG 1: KHÁI NIỆM VỀ WEB APPLICATION FRAMEWORK VÀ HÌNH MVC 1.1 Web Application Framework là gì? “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. Mục đích của Framework là nhắm tới việc giảm bớt các hao phí liên quan tới các hoạt động thực hiện trong quá trình phát triển web. Ví dụ, nhiều framework cung cấp thư viện để truy cập cơ sở dữ liệu, khung khuôn mẫu và quản lý phiên làm việc, thêm vào đó làm tăng khả năng tái sử dụng mã. 1.2. PHP Framework PHP framework là web framework được viết bằng PHP - một ngôn ngữ lập trình nguồn mở phổ biến nhất hiện nay. 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…). Bên cạnh đó PHP có một cộng đồng sử dụng lớn, luôn biết hỗ trợ lần nhau. 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ẹ. Đây là lúc họ cần tới một PHP framework. 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 đó. Hay nói cách khác, PHP Framework giúp đỡ các lập trình viên thúc đẩy nhanh chóng quá trình phát triển ứng dụng, tiết kiệm được phần lớn thời gian, tăng sự ổn định cho ứng dụng, và đặc biệt là giảm thiểu số lần phải viết lại mã. 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. 9 Ý tưởng chung đằng sau kiến trúc của một PHP Framework được kể đến là hình MVC. Một hình không mới nhưng mang lại nhiều cảm hứng cho các chuyên gia lập trình trong nhiều năm qua. Chúng ta sẽ cùng tìm hiểu các khái niệm và đặc điểm của hình M-V-C. 1.3 MVC là gì? MVC là chữ viết tắt của Model-View-Controller, một mẫu kiến trúc (architectural pattern) được tạo ra nhằm giải quyết các vấn đề phát sinh cũng như các giải pháp tổ chức mã trong quá trình phát triển phần mềm. Khi sử dụng đúng cách, mẫu MVC giúp cho người phát triển phần mềm cô lập các nguyên tắc nghiệp vụ và giao diện người dùng một cách rõ ràng hơn. Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các nguyên tắc xử lý nghiệp vụ và giao diện ít có liên quan với nhau. 1.3.1. Lịch sử MVC Bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto. Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller). 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. Tiêu biểu là bộ thư viện đồ họa của ngôn ngữ lập trình hướng đối tượng SmallTalk (cũng do Xerox PARC nghiên cứu và phát triển vào thập niên 70 của thế kỷ 20). Ngày nay, trong nhiều các nền tảng lập trình chúng ta thấy sự có mặt của hình MVC, có thể kể đến: + Swing Components của Java + Document View Architecture trong Microsoft Visual C++ (VC++) + QT4(KDE) + Apple’s Cocoa (Core Data) 10 1.3.2. Vai trò của các thành phần M-V-C trong Web framework Hình 1. 0.1 hình MVC a. C - Controller Controller là các lớp điều khiển luồng ứng dụng, tiếp nhận yêu cầu người dùng thông qua HTTP header, sau đó chuyển tiếp nó đến các lớp phụ trách trực tiếp xử lý yêu cầu. Tùy theo cách thiết kế lớp mà chúng ta thường thấy Controller gồm: + Front Controller. Là một controller xử lý tất cả các yêu cầu người dùng cho website. Fron Controller có nhiệm vụ hợp nhất tất cả các xử lý yêu cầu vào một kênh yêu cầu thông qua một đối tượng. + Dispatcher: Lớp điều phối hướng các điều khiển đi mức cao hơn + 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. Hiểu một cách đơn giản, Controller là thành phần trung gian giữa View và Model. 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. Tiếp theo, một View thích hợp sẽ được lựa chọn. Controller sẽ chuyển tiếp dữ liệu vào view để nó xử lý. Một số hoạt động thường thấy của Controller:  Tạo form, gửi tin nhắn đến form để yêu cầu kiểm tra dữ liệu [...]... riêng về tổ chức ứng dụng web từ hình MVC cho đến kiến trúc phân cấp Controller Vì thế, Hiphop mang theo nhiều điểm khác biệt so với các PHP framework đương đại Hình 2.0.1 hình MVC được áp dụng trong Hiphop framework 15 Các đặc điểm nổi bật của Hiphop framework bao gồm:  Tính dễ sử dụng (với cả các lập trình viên chưa có nhiều kinh nghiệm)  Kiến trúc MVC hiện đại: hình dữ liệu (Model), điều... không chỉ giúp tiết kiệm được thời gian khi lập trình viên làm việc với hệ thống database mà còn giúp lập trình viên tránh được các lỗi báo mật (SQL Injection) khi viết câu lệnh SQL i Các thư viện – Library (các class đặt trong thư mục system/libraries) 23 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 Mỗi thư viện thực... 31 CHƯƠNG 4: HỆ THỐNG CÁC LỚP THƯ VIỆN VÀ HÀM HỖ TRỢ - LIBRARY & HELPER 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 4.1.1 Email... 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 hình tương tác đơn... trữ các hàm hỗ trợ lập trình tối ưu Libraries 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 và hàm cốt lõi của Hiphop Database 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 2.2.2 Các thành phần cốt lõi 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 Biểu đồ sau minh họa điều đó Hình 2.0.3 Quy trình xử lý... phát triển web 14 CHƯƠNG 2 GIỚI THIỆU FRAMEWORK ĐÃ XÂY DỰNG 2.1 Tổng quan về framework đã xây dựng Sau một quá trình tìm tòi và phát triển, chúng tôi đã xây dựng được một PHP framework hoàn toàn mới, có nhiều ưu điểm so với các framework hiện nay Chúng tôi đặt tên framework này là Hiphop framework 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 hình MVC trong... là một lựa chọn tốt cho những lập trình viên có kiến thức nâng cao về PHP Nó dựa trên cùng một nguyên tắc thiết kế với Ruby on Rails (một framework dành cho các nhà phát triển các ứng dụng web bằn ngôn ngữ Rail) Với các hệ 13 thống hỗ trợ, tính đơn giản và mỗi trường mở cao đã giúp cho CakePHP trở thành một trong những framework phổ biến nhất hiện nay  CodeIgniter: một MVC framework viết bằng PHP4... hướng dẫn phong phú, diễn đàn hỗ trợ, và cung cấp sẵn một hướng dẫn sử dụng cho người mới bắt đầu PHP framework này rất phù hợp cho một người mới làm quen với framework  Joomla! v1.5.x: một hệ quản trị nội dung nguồn mở được phát triển theo hình MVC trong các phần mở rộng (extensions), bao gồm các thành phần (components) và các đun (modules) Cảm thấy chưa thỏa mãn với hình hiện tại của các framework,... tối ưu cao  Hệ thống lớp truy xuất Database mạnh mẽ, hỗ trợ tạo nhiều kết nối Database đến các máy chủ database khác nhau trên cùng một request  Thư viện hỗ trợ caching  Mềm dẻo trong việc định tuyến URL (URL Routing) Ngoài ra, Hiphop framework tích hợp thêm vào một số lớp thư viện mà các framework khác chưa mặc định tích hợp:  Gửi Email, hỗ trợ đính kèm, HTML/Text email, đa giao thức (sendmail,... và designer với nhau 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 hình MVC được áp dụng rất nhiều trong các Web framework hiện nay Các PHP framework phổ biến nhất:  Zend framework: là sản phẩm của Zend – công ty “bảo trợ cho PHP Với các tính năng mạnh mẽ, Zend framework thường được sử dụng cho các công ty lớn, . NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Xuân Thăng XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ. TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Xuân Thăng XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB DỰA TRÊN MÔ HÌNH MVC KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ. luận này. TÓM TẮT KHÓA LUẬN 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)

Ngày đăng: 28/06/2014, 01:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan