Mục Lục Phần 1: Giới thiệu về công nghệ Zend Frameword 3 1.1 Giới thiệu công nghệ Zend Frameword 3 1.2 Mô hình MVC trong Zend framwork 5 1.3 Luồng xử lý trong Zend framework 6 Phần 2: Giới thiệu bài toán 9 2.1 Giới thiệu 9 2.2 Giới thiệu sơ lược về hệ thống 9 2.3 Phân công công việc 9 Phần 3: Phân tích yêu cầu bài toán 11 3.1 Biểu đồ ca sử dụng 11 3.2 Biểu đồ trình tự 11 Phần 4: Thiết kế hệ thống Cơ sở dữ liệu 14 Phần 5: Kết luận và đánh giá 18 Tài liệu tham khảo 19 Phần 1: Giới thiệu về công nghệ Zend Frameword 1.1 Giới thiêu về công nghệ Zend Frameword a . Zend Framwork là gì? Zend Framework là sản phẩm framework mã nguồn mở được phát triển trên nền tảng PHP 5.0 theo mô hình hướng đối tượng. Zend Framwork là framework theo mô hình MVC. Zend Framwork có hỗ trợ làm việc với Template engine kết hợp cùng tầng View. b. Zend Framwork làm được những gì? Tạo ứng dụng web theo mô hình chuẩn MVC. URL tiêu chuẩn, ngắn gọn. Hỗ trợ phân quyền tới từng Action. Có các thành phần thư viên hỗ trợ API của các nhà cung cấp như Google, Yahoo, … Quản lý code dễ dàng, liệt kê và lấy các truy vấn history. Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng Plugins. c. Ưu khuyết điểm của Zend Framework: Zend Framework là một PHP framework ra đời khá trễ, tiếp thu được những tinh hoa và khắc phục những sai lầm mà các framewok trước mắc phải. • Ưu điểm: Zend Framework được viết theo kiểu hướng đối tượng nên nó thừa hưởng các thế mạnh của kiểu thiết kế này. Các lớp của Zend Framework được BA (Business Analysis) rất chuẩn và khi cần mở rộng bạn costheer dùng tính chất thừa kế của OOP, không cần thiết phải chỉnh sửa core của framework. Các version của Zend Framework không có nhiều thay đổi trong core nên có thể dễ dàng update. Zend Framework tích hợp gần như tất cả các thư viện PHP và CMS khác để sử dụng. Ví dụ: Smarty, Pear, Drupal, … Cách viết của Zend Framework rất thân thiện và đơn giản, tích hợp những công nghệ mới nhất của lập trình web: JSON, Search, Syndication, Web Services, … Thường được sử dụng trong các dự án lớn và có kế hoạc phát triển dài lâu. • Khuyết điểm:
1 Đại Học Bách Khoa Hà Nội Viện Công Nghệ Thông Tin và Truyền Thông BÁO CÁO Môn: PROJECT 2 -K54 Đề tài : Xây dựng trang web bộ môn Hệ Thống Thông Tin dựa trên nền Zend frameword Giáo viên hướng dẫn:ThS. Phạm Thị Hương GiangSinh viên thực hiện :Phạm Thanh HoàngSHSV:Nguyễn Việt HiếuSHSV: 20091046 Hà Nội – 05/2012 Mục Lục Phần 1: Giới thiệu về công nghệ Zend Frameword 3 1.1 Giới thiệu công nghệ Zend Frameword 3 1.2 Mô hình MVC trong Zend framwork 5 1.3 Luồng xử lý trong Zend framework 6 Phần 2: Giới thiệu bài toán 9 2.1 Giới thiệu 9 2.2 Giới thiệu sơ lược về hệ thống 9 2.3 Phân công công việc 9 Phần 3: Phân tích yêu cầu bài toán 11 3.1 Biểu đồ ca sử dụng 11 3.2 Biểu đồ trình tự 11 Phần 4: Thiết kế hệ thống- Cơ sở dữ liệu 14 Phần 5: Kết luận và đánh giá 18 Tài liệu tham khảo 19 Phần 1: Giới thiệu về công nghệ Zend Frameword ***** 2 1.1 Giới thiêu về công nghệ Zend Frameword a . Zend Framwork là gì? - Zend Framework là sản phẩm framework mã nguồn mở được phát triển trên nền tảng PHP 5.0 theo mô hình hướng đối tượng. - Zend Framwork là framework theo mô hình MVC. - Zend Framwork có hỗ trợ làm việc với Template engine kết hợp cùng tầng View. b. Zend Framwork làm được những gì? - Tạo ứng dụng web theo mô hình chuẩn MVC. - URL tiêu chuẩn, ngắn gọn. - Hỗ trợ phân quyền tới từng Action. - Có các thành phần thư viên hỗ trợ API của các nhà cung cấp như Google, Yahoo, … - Quản lý code dễ dàng, liệt kê và lấy các truy vấn history. - Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng Plugins. c. Ưu khuyết điểm của Zend Framework: Zend Framework là một PHP framework ra đời khá trễ, tiếp thu được những tinh hoa và khắc phục những sai lầm mà các framewok trước mắc phải. • Ưu điểm: - Zend Framework được viết theo kiểu hướng đối tượng nên nó thừa hưởng các thế mạnh của kiểu thiết kế này. Các lớp của Zend Framework được BA (Business Analysis) rất chuẩn và khi cần mở rộng bạn costheer dùng tính chất thừa kế của OOP, không cần thiết phải chỉnh sửa core của framework. - Các version của Zend Framework không có nhiều thay đổi trong core nên có thể dễ dàng update. - Zend Framework tích hợp gần như tất cả các thư viện PHP và CMS khác để sử dụng. Ví dụ: Smarty, Pear, Drupal, … - Cách viết của Zend Framework rất thân thiện và đơn giản, tích hợp những công nghệ mới nhất của lập trình web: JSON, Search, Syndication, Web Services, … Thường được sử dụng trong các dự án lớn và có kế hoạc phát triển dài lâu. • Khuyết điểm: 3 - Mất nhiều thời gian để tìm hiểu về thư viện của Zend FrameWork. - Một số lớp chưa ổn định, có sự thy đổi, gây khó khăn cho người sử dụng khi cập nhật các phiên bản. d. Sơ qua về các thành phần trong Zend Framwork: Zend_Acl: giúp chúng ta phân quyền cho ứng dụng chi tiết trên từng action, controller và Module. Zend_Auth: cung cấp một API cho việc chứng thực tài khoản khi đăng nhập vào hệ thống. Zend_Cache: giúp cho các ứng dụng không phải sử dụng CPU hoặc truy xuất vào database quá nhiều. Zend_Controller: giúp lấy các request từ phía Client và thực thi nó bằng các Action Zend_Currency: xử lý tất cả các vấn đề liên quan đến tiền tệ Zend_Date: xử lý tất cả các vấn đề liên quan thời gian Zend_Db: Dựa trên đối tuợng PDO (PHP Data Objects), cung cấp cách thức giao tiếp với database. Zend_Feed: xử lý với RSS và Atom feeds. Zend_File: cung cấp, hỗ trợ mở rộng việc upload và download của các tập tin. Nó gắn liền với kiểm tra các chức năng của tập tin. Zend_Filters: lọc dữ liệu trước khi thực hiện một quá trình xử lý nào đó. Zend_Form: đơn giản hóa việc tạo form và xử lý các ứng dụng trên website. Zend_Local: là một thư viện trả lời cho câu hỏi làm sao ứng dụng có thể sử dụng trên toàn thế giới. Zend_Search: là một lớp cung cấp cho chúng ta các phương thức search trên nội dung của các tập tin lưu trữ thông tin. Zend_Translate: là giải pháp cho các ứng dụng đa ngôn ngữ. Zend_Validate: dùng để kiểm tra dữ liệu nhập vào có phù hợp với yêu cầu hay không. Zend_View: chính là tầng View trong mô hình MVC, giúp chúng ta hiển thị những kết quả trong xử lý Controller và Models ra bên ngoài. 4 2.Mô hình MVC trong Zend Framwork: Bất cứ một ứng dụng nào được xây dựng theo mô hình MVC thì cũng đều phải tuân thủ những nguyên tắc mà mô hình MVC mang lại: • Model: Thành phần model được chúng ta xây dựng thành các lớp kế thừa từ lớp Zend_Db_Table hoặc Zend_Db_table_Abstract được đặt trong thư mục application/models của ứng dụng. Mỗi lớp sẽ đảm nhận việc kết nối và thao tác đến table trong cơ sở dữ liệu. • View Thành phần của view được đặt trong thư mục application/views. Trong thư mục views có 3 thành phần : o Scripts : Chứa các thư mục gồm các file ánh xạ đến các controller/action để hiển thị trang giao diện tương ứng. o Helpers : Trong thư mục này chứa các lớp mà chúng ta tạo ra và các lớp này sẽ được nạp tự động cho đối tượng Zend_View thông qua Zend_View_Helper để giúp chúng ta dễ dàng gọi đến hàm được xây dựng trong lớp này mà không cần phải khai báo trước vì nó được xem là một thành phần trong thư viện của Zend. o Filers : Tương tự như helpers, thành phần filters chứa các lớp giúp cho chúng ta có thể thay đổi hoặc xóa những dữ liệu 5 không mong muốn trong quá trình nhập liệu thông qua bộ lọc này. • Controller Controller có nhiệm vụ điều hành trang web của bạn. Một trang web có thể có nhiều module, một module có thể có nhiều controller, một controller gồm có nhiều action. Zend Framework sử dụng đối tượng Front Controller để quản lý các Request được gửi tới Web Server. Và dựa trên Request đó nó sẽ gọi các lớp xử lý Model và trả về kết quả trình bày với các lớp View. index.php index.php là một file rất quan trọng trong website,nó có nhiệm vụ đón đầu tất cả các request vào, sau đó khởi tạo controller và dispatch request đến controller tương ứng. bootstrap.php : bootstrap.php có nhiệm vụ khởi tạo các đối tượng toàn cục sử dụng cho website, Bẫy lỗi của ứng dụng và đưa về cho errorController xử lý. Khi có một request từ người dùng. Controller sẽ tiếp nhận request, phân tích request, sau đó sẽ phân luồng request để gọi đến Model và View tùy vào request mà người dùng đã gửi. Khi người dùng gửi một request từ browser thì nơi đầu tiên tiếp nhận request đó đầu tiên là controller. Tùy vào request, mà controller sẽ phân luồng đến model và view. 3. Luồng xử lý công việc trong Zend Framework: 6 o Bước 1: Một yêu cầu được tạo ra và đối tượng Request Object được tạo ra. o Bước 2: routeStartup được nạp. o Bước 3: Router xử lý yêu cầu. o Bước 4: routerShutdown được nạp. o Bước 5: dispatchLoopStartup được nạp. o Bước 6: Qui trình gửi thông tin được bắt đầu. o Bước 7: preDispatch được nạp. o Bước 8: Dispathcher gọi Action Controller. o Bước 9: Action Controller tạo Response Object. o Bước 10: postDispatch được nạp. o Bước 11: Nếu có Action nào được gọi thì quay lại bước 7. o Bước 12: dispatchLoopShutdown được nạp . o Bước 13: Response được gửi lại. 4. Cấu trúc thư mục của một Project trong Zend Framework (một module): Câu trúc thư mục Diễn giải /aplication Thư mục chứa các thành phần của mô hình MVC 7 /configs Thư mục chứa các tập tin cấu hình *.ini, *.xml applications Tập tin cấu hình /controllers Thư mục chứa các tập tin điều hướng hành động IndexContro ller.php Controller mặc định kế thừa lớp Zend_Controller_Action mỗi tập tin controller sẽ có một phương thức mặc định là indexAction. /forms Thư mục chứa các lớp được tạo bởi Zend_Forms hoặc các lớp validate form. /models Thư mục chứa các lớp tương tác trực tiếp với database. /views Phụ thuộc thư mục /controllers /filters Chứa các lớp lọc dữ liệu đầu vào, đầu ra. /helpers Chứa các hỗ trợ. /scripts Chứa view của các action trong controller /index Tương ứng tập tin IndexController.php /i ndex.php Tương ứng phương thức indexAction trong lớp InderController.php. /layouts Thư mục chứa các bố cục,giao diện của ứng dụng. Bootstrap.php Tập tin khởi tạo tài nguyên, nạp sẵn các phương thức. /library Thư mục chứa các thư viện ứng dụng. /Zend Thư viện của Zend. 8 /Zendvn Thư viện mở rộng Zendvn /public Thư mục chứa các thành phần khác(dùng chung) /css Thư mục chứa các tập tin CSS. /images Thư mục chứa các tập tin hình ảnh /js Thư mục chứa các tập tin Javascript. index.php Tập tin chạy chính của ứng dụng. define.php Tập tin định nghĩa hằng số. Phần 2 : Giới thiệu bài toán 2.1 Giới thiệu bài toán -Quản lý danh sách các giảng viên trong một bộ môn thật khó,việc các giảng viên làm sao có thể quản lý các bài giảng, các học phần mà mình đảm nhiệm. -Trong khuôn khổ môn project 2 nhóm chúng em vận dung kiến thức đã học được để xây dựng một web site quản lý bộ môn hệ thống thông tin dựa trên nền tảng công nghệ Zend Frameword mà bọn em nghiên cứu được. 2.2 Giới thiệu sơ lược về hệ thống Các chức năng của hệ thống: -Quản lý phần tin tức và thông báo chung của bộ môn -Quản lý danh sách cán bộ giảng viên bộ môn hệ thống thông tin trường Đại Học Bách Khoa Hà Nội -Các giảng viên có thể đăng nhập,them sửa xóa phần thông tin cá nhân của mình,có thể update và download bài giảng của mình -Quản lý danh sách các cựu sinh viên tham gia đồ án tốt nghiệp -Phần tìm kiếm có thể tìm các đề tài nghiên cứu, các slide bài giảng của các giảng viên 2.3 Phân công công việc chung a. Công việc chung -Cùng nhau tìm hiểu về công nghệ PHP lạp trình web, mysql, apache, mô hình MVC và nền tảng Frameword của Zend. 9 -Cùng phân tích yêu cầu của đề bài, phân tích các chức năng , phân tích cơ sở dữ liệu b. Công việc riêng Nguyễn Việt Hiếu -Đảm nhiệm thiết kế giao diện của trang web, sử dụng phần mềm photoshop vẽ phác thảo giao diện của trang web. Sau đó chuyển file photoshop sang html, dùng ngôn ngữ CSS và JQery để căn chỉnh giao diện trang web. -Cùng Phạm Thanh Hoàng sử dụng ngôn ngữ php và mysql thiết kế các Modul hoàn chỉnh Phạm Thanh Hoàng Thiết kế cơ sở dữ liệu, thực hiện đưa code theo đúng mô hình MVC và Zend framword c. Công việc từng tuần Tuần 4: Nhận đề tài và tìm hiểu đề tài Tuần 5: Phân tích bài toán Tuần 6:Giải quyết vấn đề lưu trữ bảng trong cơ sở dữ liệu Tuần 7:Phân tích phác thảo cơ sở dữ liệu, Giải quyết vấn đề upload và download file 10 [...]... và đánh giá *** 5.1 Ưu điểm -Hệ thống đã đáp ứng đầy đủ các chức năng đã đề ra -Vận dụng được kiên thức về Zend Framword vào bài toán -Thiết kế đưa toàn bộ thông tin vào cơ sở sữ liệu 5.2 Nhược điểm -Hệ thống còn ít chức năng do thời gian hạn chế -Chưa tối ưu hóa hết phần cơ sở dữ liệu 18 Tài liệu tham khảo *** [1] Slide bài giảng “Phân tích và thiết kế hệ thống thông tin – Nguyễn Hồng Phương, đại... phần thông tin cá nhân, các bài giảng , 3.2 Biểu đồ trình tự 11 Biểu đồ trình tự cho admin: Biểu đồ trình tự cho User 12 13 Phần 4: Thiết kế hệ thống *** Biểu đồ csdl : Biểu đồ thực thể liên kết: Trong đó -Bảng groups : Dùng để phân quyền giữa admin và các giảng viên -Bảng catalog_info : bảng lưu trữ loại thông tin -Bảng information : bảng chứa thông tin -Bảng subject : -Bảng teacher : Chứa thông tin. .. Tuần 9: Thực hiện code giao diện, Tạo trang user hoàn chỉnh Thực hiện việc update và download file Tuần 10:Tạo trang admin quản lý Tuần 11:Test lỗi và kiểm tra lại sản phẩm Tuần 12 :Chuẩn bị viết báo cáo và trình bày sản phẩn trước giảng viên hương dẫn Phần 3 : Phân tích yêu cầu bài toán ***** 3.1 Biểu đồ ca sử dụng Hệ thống gồm tác nhân chính: usre và admin Hệ thống cung cấp các chức năng : Người... dữ liệu 18 Tài liệu tham khảo *** [1] Slide bài giảng “Phân tích và thiết kế hệ thống thông tin – Nguyễn Hồng Phương, đại học Bách Khoa Hà Nội [2] “Phát triển hệ thống hướng đối tượng với UML 2.0 và C++” – Nguyễn Văn Ba [3] Giáo trình “Nhập môn UML” – Huỳnh Văn Đức, Đoàn Thiện Ngân 19 ... admin và các giảng viên -Bảng catalog_info : bảng lưu trữ loại thông tin -Bảng information : bảng chứa thông tin -Bảng subject : -Bảng teacher : Chứa thông tin các giảng viên 14 -Bảng student : Chứa thông tin các sinh viên -Bảng stujects: -Bảng url_lecture : Chứa đường dẫn các tài liệu download -Bảng article: 15 -Bảng teach_subj : Bảng liên kết giữa bảng teacher và bảng subject -Bảng teach_subjs: Bảng