TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công nghệ Thông tin và Truyền thơng
BÀI TẬP LỚN
Mơn học: CƠNG NGHỆ WEB VÀ DỊCH VỤ TRỰC TUYẾN
ĐỀ TÀI: CMS mini - Zend Framework
Số hiệu nhóm:
29
Giảng viên hướng dẫn: TS.Tạ Tuấn Anh
Sinh viên thực hiện:
Họ tên
Trần Quang Chiến
Nguyễn Bảo Chung
Trần Nam Sơn
Vũ Đình Diệu
SHSV
20090304
20090333
20092279
20090459
Lớp
CNTT1-K54
CNTT1-K54
CNTT1-K54
CNTT2-K54
MỤC LỤC
MỤC LỤC .................................................................................................................................................... 2
Lời nói đầu .................................................................................................................................................... 3
Phần 1 Giới thiệu về PHP và Zend Framework ............................................................................................ 4
PHP................................................................................................................................................... 4
I.
II.
PHP Framework ......................................................................................................................... 4
III.
ZEND FRAMEWORK ............................................................................................................... 5
1.
Giới thiệu ..................................................................................................................................... 5
2.
Cài đặt, cấu hình Zend Framwork ............................................................................................ 6
3.
Các lớp cơ bản theo mơ hình MVC ........................................................................................... 7
Phần 2 Xây dựng ứng dụng sử dụng Zend Framework ................................................................................ 8
PHÂN TÍCH CHỨC NĂNG VÀ VẼ BIỂU ĐỒ USE CASE ....................................................... 8
I.
1.
Phân tích chức năng.................................................................................................................... 8
2.
Biểu đồ use case ........................................................................................................................... 9
II.
THIẾT KẾ CHI TIẾT .............................................................................................................. 12
1.
Xây dựng biểu đồ lớp của hệ thống. ........................................................................................ 13
2.
Thiết kế cơ sở dữ liệu cho hệ thống. ........................................................................................ 13
3.
Thiết kế giao diện ...................................................................................................................... 15
Lời nói đầu
Internet hiện nay đang phát triển với tốc độ chóng mặt và tác động đến mọi mặt
của đời sống. Chính vì vậy lập trình web trở thành một trong những công việc hết
sức cần thiết.
Trong các công nghệ lập trình web hiện nay thì PHP cùng với Apache và Mysql
nổi lên như một công nghệ rất mạnh đối lập với các cơng nghệ đóng ASP.NET,
SQL Server và IIS của Microsoft nhờ vào tính mở, miễn phí, cộng đồng phát triển
rộng lớn.
May mắn được học môn Công nghệ web và các dịch vụ trực tuyến vào kì 6, chúng
em cùng nhau thực hiện đề tài “phát triển một CMS mini sử dụng Zend
Framwork”. Trong quá trình thực hiện đề tài, chúng em đã thu được nhiều kinh
nghiệm về lập trình web động.
Chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy Tạ Tuấn Anh, cả
về chun mơn cũng như định hướng trong q trình chúng em thực hiện đề tài.Vì
kiến thức cịn hạn hẹp,nên chương trình của chúng em khơng thể tránh khỏi nhiều
thiếu sót.Rất mong được sự góp ý của thầy giáo cũng như các bạn trong lớp để
chúng em có thể cải tiến được chất lượng của chương trình.
Phần 1 Giới thiệu về PHP và Zend Framework
I.
PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình
kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng
viết cho máy chủ, mã nguồn mở. Nó rất thích hợp với web và có thể dễ dàng
nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ
nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản
phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng
trở thành một ngơn ngữ lập trình web phổ biến nhất thế giới.
*Ưu điểm
+
+
+
+
+
+
+
Dùng mã nguồn mở (có thể chạy trên Apache hoặc IIS).
Phổ biến hơn ASP (có thể thấy dựa vào số website dùng PHP).
Dễ học khi đã biết HTML, C.
Dễ cấu hình.
Nhiều hệ thống CMS miễn phí.
Tương thích với mySQL (cũng dễ ).
Có thể hoạt động trên Linux.
*Nhược điểm
II.
+ Mã nguồn khơng đẹp, ít tool phát sinh code.
+ Chỉ chạy trên web.
+ Khơng thích hợp ở cấp doanh nghiệp
PHP Framework
Framework: một thư viện mã lệnh được xây dựng sẵn để sử dụng
PHP Framework: làm nhiệm vụ cung cấp 1 cấu trúc cơ bản để xây dựng những
ứng dụng PHP. Giúp đỡ nhà lập trình thúc đẩy nhanh chóng quá trình phát triển
ứng dụng, giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng, và
giảm thiểu số lần phải viết lại mã cho lập trình viên. Ngồi ra Framework cịn
giúp những người mới bắt đầu có thể xây dựng các ứng dụng ổn định hơn nhờ
việc tương tác chính xác giữa các Database, mã (PHP) và giao diện (HTML) 1
cách riêng biệt. Điều này cho phép bạn dành nhiều thời gian để tạo ra các ứng
dụng web, hơn là phí thời gian để viết các đoạn mã lặp lại trong 1 project.
III. ZEND FRAMEWORK
1. Giới thiệu
Một trong các PHP Framework phổ biến nhất đó là Zend Framework, nhờ vào
cộng đồng phát triển rộng lớn, tập trung vào các ứng dụng Web 2.0, tính năng
mạnh.
Zend Framework là 1 PHP Framework đuợc lập trình trên PHP dựa theo mơ
hình MVC giúp tách bạch các phần xử lý riêng biệt cho website của bạn, nó
giúp cho code trơng sáng sủa hơn, dễ quản lý, chỉnh sửa và nâng cấp.
Mơ hình MVC trong Zend Framwork
Model: Cung cấp tập hợp các lớp được trừu tượng hóa sử dụng cho việc
truy xuất dữ liệu.
Lớp phục vụ: Zend_DB, Zend_DB_Table
View : Định nghĩa các thơng tin hiển thị phía người dụng sau khi được xử
lý và trả về từ controller.
Lớp phục vụ: Zend_View
Controller : Kiểm soát dữ liệu vào ra. Xuất thông tin ra tầng View khi
được thực thi.
Lớp phục vụ: Zend_Controller
2. Cài đặt, cấu hình Zend Framwork
Ta download thư viện Zend về rồi copy vào thư mục library của ứng dụng
Cấu trúc thư mục của 1 ứng dụng Zend
Khởi tạo ứng dụng trong Zend Framework gồm 3 bước cơ bản
Khởi tạo môi trường: Bật chức năng Debug, khai báo về múi giờ làm
việc, …
Khai báo đường dẫn: Load các class làm việc của nhân ZF
Thiết lập controllers: Chỉ ra nơi đáp ứng các request.
3. Các lớp cơ bản theo mơ hình MVC
a. Zend_Config
Chức năng: Load cấu hình giao tiếp webserver: Databse, các đường dẫn lưu trữ
Layout, css, js…
Có 2 lớp đại diện
o Zend_Config_Ini: Cho phép nhận diện và đọc các file “. ini”, “.txt”, …
o Zend_Config_Xml: Cho phép nhận diện và đọc file “.xml”
b. Zend_Db
Chức năng: Giao tiếp với Database. Load cấu hình connection
Các lớp đại diện:
o Zend_Db_Table: Các thao tác thực thi với Table, Row, Column
o Zend_Db_Select: Thay thế và tạo ra cách viết câu lệnh SQL query mới
Lớp này được sử dụng trong tầng Model và giao tiếp trực tiếp
với Database
c. Zend_Controller
Controller trong ZF được đặt tên theo quy định để sử dụng cho việc gọi hàm trong
Controller đó qua tham số trên URL.
Việc xử lý Request được thực hiện thông qua phương thức được khai báo trong
Controller tương ứng
d. Zend_View
Thực thi Zend_View_Interface giúp tạo ra template engine riêng.
Mặc định Zend_View sử dụng PHP Taglib
Gán và trả về giá trị dưới dạng đối tượng .
o $view->content = $body
Truy cập biến trong view sử dụng con trỏ $this
o <?= $this->content ?>
Phần 2 Xây dựng ứng dụng sử dụng Zend
Framework
I.
PHÂN TÍCH CHỨC NĂNG VÀ VẼ BIỂU ĐỒ USE CASE
1. Phân tích chức năng
Các tác nhân sử dụng hệ thống:
Admin
Người dùng
Hệ thống có các chức năng:
2. Biểu đồ use case
a. Use case tổng thể
b. Các use case liên quan đến tác nhân Admin
Use case quản lý CSDL
Use case quản lý người dùng:
Use case quản lý giao diện:
c. Các use case liên quan đến tác nhân người dùng:
use case đọc tin tức
Use case quản lý tài khoản
II.
THIẾT KẾ CHI TIẾT
1. Xây dựng biểu đồ lớp của hệ thống.
2. Thiết kế cơ sở dữ liệu cho hệ thống.
Cơ sở dữ liệu cho trang web được thiết kế theo sơ đồ quan hệ, gồm các bảng sau:
Bảng advertise: chứa các thông tin về các quảng cáo trong trang web.
Cột
ID
name
link
prior
Mô tả
Mã số
Tên quảng cáo
Đường dẫn đến trang quảng cáo
Bảng article: chứa nội dung của một bài báo.
Cột
ID
heading
contents
User-id
datetime
picture
Mô tả
Mã số của bài
Tiêu đề
Nội dung
Mã số của người dùng
Ngày , tháng
Tranh ảnh được sử dụng trong bài báo
Bảng comment: chứa thông tin về các comment của người dùng.
Cột
contents
user
id
Datetime
Mô tả
Nội dung comment
Người comment
Mã số của comment
Ngày, giờ comment
Bảng news: chứa các thông tin về tin tức.
Cột
id
Heading
contents
author
picture
datetime
kind
tag
Mô tả
Mã số của tin
Tiêu đề của bài tin
Nội dung của tin
Người viết bài
Tên ảnh được sử dụng trong bài
Ngày, giờ viết
Thể loại bài tin
Các tag của bài tin
Bảng user: chứa các thông tin quản lý người dùng.
Cột
id
username
password
status
address
Birthday
Mô tả
Mã số người dùng
Tên đăng nhập của người dùng
Mật khẩu đăng nhập của người dùng
Quyền đăng nhập
Địa chỉ của người dùng
Ngày sinh của người dùng
email
Introduce
Blog
Time-init
Email người dùng
Giới thiệu về người dùng
Blog của người dùng
Thời gian kích hoạt tài khoản
3. Thiết kế giao diện