[TABLE] [TR] [TD]LỜI NÓI ĐẤ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 mô hình tiên tiến hiện nay, các nhà phát triển đã xây dựng được một mô hình kiến trúc hỗ trợ lập trình các ứng dụng web được sử dụng phổ biến hiện nay không những trong ngôn ngữ PHP mà nó còn được sử dụng rất rộng rãi trong Java và các ngôn ngữ khác. Tiểu luận này sẽ giúp chúng ta tìm hiểu sâu thêm về kiến trúc mô hình MVC và ứng dụng của nó vào việc thiết kế các ứng dụng website. Mà framework áp dụng ở đây là Cakephp, một framework rất mạnh trong việc ứng dụng mô hình MVC để phát triển ứng dụng website. Cũng qua bài tập lần này nhóm chúng em xin cảm ơn Thạc sĩ Nguyễn Đức Lưu, thầy giáo bộ môn kỹ nghệ phần mềm đã trực tiếp dạy dỗ, chỉ bảo chúng em trong toàn bộ môn học. Cuối cùng chúng em cũng xin cảm ơn tất cả các thầy cô giáo, bạn bè đẽ nhiệt tình giúp đỡ chúng em hoàn thành tốt bài tập lần này. Trân trọng! MỤC LỤC CHƯƠNG I. TỔNG QUAN VỀ WEB APPLICATION FRAMEWORK VÀ MÔ HÌNH MVC. 3 1.1 Web Application Framework là gì?. 3 1.2. PHP Framework. 3 1.3 MVC là gì?. 4 1.3.1. Lịch sử MVC. 4 1.3.2. Vai trò của các thành phần M-V-C trong Web framework. 5 1.4. Hệ quản trị CSDL MYSQL. 9 1.4.1.Giới thiệu về hệ quản trị CSDL MySql 9 1.4.2. Kết nối vào CSDL. 10 1.4.3. Chọn CSDL để làm việc. 11 1.4.4. Thực thi câu lệnh select và lấy kết quả trả về. 11 1.4.5. Thực thi một câu lệnh insert, update hoặc delete. 13 CHƯƠNG II. TỔNG QUAN VỀ FRAMEWORK CAKEPHP. 16 2.1. Giới thiệu về Framework CakePHP. 16 2.1.1.Một số tính năng của CakePHP 16 2.2.Cài đặt Cake PHP. 17 2.2.1. Chuẩn bị và cài đặt 17 2.2.2. Cấu trúc thư mục CakePHP 19 2.3. Kiến trúc CakePHP. 20 CHƯƠNG III. CÀI ĐẶT DEMO ỨNG DỤNG FRAMEWORK CAKEPHP VÀ MÔ HÌNH MVC. 21 3.1. Giới thiệu ứng dụng. 21 3.2. Cài đặt ứng dụng. 21 3.2.1. Cấu hình. 21 3.3. Giao diện người dùng. 23 3.3.1.Giao diện trang chủ. 23 3.3.2. Giao diện trang liên hệ. 23 3.3.3. Giao diện mua hàng. 24 3.3.4. Giao diện tin tức. 25 3.3.5. Giao diện hỗ trợ trực tuyến. 26 3.3.6. Các giao diện khác. 26 3.4. Giao diện quản trị. 27 3.4.1. Giao diện đăng nhập. 27 3.4.2. Giao diện quản lý danh mục và thêm danh mục. 27 3.4.3. Quản lý sản phẩm và thêm sản phẩm 28 3.4.4. Giao diện quản lý tin tức và thêm mới tin. 29 3.4.5. Quản lý hóa đơn. 30 3.4.6. Quản lý thông tin chung website. 31 3.5. Kết quả thu được, hạn chế. 31 CHƯƠNG IV. TỔNG KẾT. 33 CHƯƠNG V. TÀI LIỆU THAM KHẢO 34 CHƯƠNG I. TỔNG QUAN VỀ WEB APPLICATION FRAMEWORK VÀ MÔ 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. Ý tưởng chung đằng sau kiến trúc của một PHP Framework được kể đến là mô hình MVC. Một mô 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 mô 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 mô 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) 1.3.2. Vai trò của các thành phần M-V-C trong Web framework