Tải bản đầy đủ (.pdf) (132 trang)

XÂY DỰNG HỆ THỐNG THẨM ĐỊNH MÔI TRƯỜNG CHO SỞ TÀI NGUYÊN MÔI TRƯỜNG TP HCM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.94 MB, 132 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG HỆ THỐNG THẨM
ĐỊNH MÔI TRƯỜNG CHO SỞ
TÀI NGUYÊN
MÔI TRƯỜNG TP HCM
Ngành
tin
Niên khoá
Lớp
Sinh viên thực hiện

: Công nghệ thông
: 2008-2012
: DH08DT
: Phan Đình Long
Lê Đức Quyền

TP.HỒ CHÍ MINH, tháng 9 năm 2012


BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP


XÂY DỰNG HỆ THỐNG THẨM
ĐỊNH MÔI TRƯỜNG CHO SỞ
TÀI NGUYÊN
MÔI TRƯỜNG TP HCM
Giáo viên hướng dẫn:

Sinh viên thực hiện:

Ths. Nguyễn Thị Thanh Thủy

Phan Đình Long
Lê Đức Quyền

TP.HỒ CHÍ MINH, tháng 9 năm 2012


CÔNG TRÌNH HOÀN TẤT TẠI
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM

Cán bộ hướng dẫn: ThS. Nguyễn Thị Thanh Thủy

Cán bộ phản biện: ThS. Lê Phi Hùng

Luận văn cử nhân được bảo vệ tại HỘI ĐỒNG CHẤM LUẬN VĂN KỸ SƯ
TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM ngày 30 tháng 08 năm 2012


Bộ Giáo Dục và Đào Tạo
Trường ĐH NÔNG LÂM TpHCM


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập-Tự Do-Hạnh Phúc

NHIỆM VỤ LUẬN VĂN CỬ NHÂN

Họ tên sinh viên: Phan Đình Long
Ngày tháng năm sinh: 02/09/1990
Chuyên ngành: Công nghệ thông tin

Phái: Nam
Nơi sinh: Đồng Nai
Ngành: Công nghệ thông tin

Họ tên sinh viên: Lê Đức Quyền
Ngày tháng năm sinh: 01/01/1990
Chuyên ngành: Công nghệ thông tin

Phái: Nam
Nơi sinh: Bình Thuận
Ngành: Công nghệ thông tin

I
.

I. TÊN ĐỀ TÀI: Xây dựng hệ thống thẩm định môi trường cho Sở Tài nguyên môi
trường TP. Hồ Chí Minh.
II. NHIỆM VỤ VÀ NỘI DUNG

Nhiệm vụ: Nghiên cứu công nghệ Zend Framework, Doctrine ORM và Activiti
để xây dựng ứng dụng hệ thống thẩm định môi trường cho sở tài nguyên môi

trường TP. Hồ Chí Minh.
Nội dung: Dựa vào quy trình nghiệp vụ và thông tin của sở tài nguyên môi
trường TP. Hồ Chí Minh để xây dựng các module trong hệ thống thẩm định
môi trường cho sở tài nguyên môi trường TP. Hồ Chí Minh.
III. NGÀY GIAO NHIỆM VỤ: 01/04/2012
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 15/08/2012
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Ths. NGUYỄN THỊ THANH THỦY

Ngày
/
/
CÁN BỘ HƯỚNG DẪN

Ngày
/
/
CHỦ NHIỆM CHUYÊN NGÀNH

Ngày
/
KHOA CNTT

/


LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn các thầy cô khoa Công nghệ thông
tin trường Đại học Nông lâm TP. HCM, với những kiến thức quý báu và
sự nhiệt huyết, tận tụy mà thầy cô đã truyền đạt cho chúng em trong
suốt 4 năm học.

Chúng con xin gởi đến cha mẹ lời ghi ơn sâu sắc, những người đã
sinh ra và dạy bảo chúng con trưởng thành đến ngày hôm nay.
Đặc biệt, chúng em xin cảm ơn cô Nguyễn Thị Thanh Thủy đã tận
tình hướng dẫn chúng em suốt thời gian qua để chúng em hoàn thành
luận văn này.
Xin chân thành cảm ơn anh Hải và chị Vân Anh - Sở Tài Nguyên
Môi Trường TP HCM đã giúp đỡ chúng em rất nhiều trong việc phân
tích nghiệp vụ và xây dựng cơ sở dữ liệu.
Mặc dù chúng em đã cố gắng hoàn thành tốt luận văn trong phạm
vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những
thiếu sót nhất định. Chúng em kính mong nhận được sự cảm thông và
tận tình chỉ bảo của quý thầy cô và các bạn.


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

DANH SÁCH CHỮ VIẾT TẮT
ORM
CSDL
BPM
JVM
STNMT
MVC
ACL
JSON
DQL
API
EMS
ĐTM
CV


GVHD: Ths. Nguyễn Thị Thanh Thủy

Ọbject relational mapping
Cơ sở dữ liệu
Business Process Management
Java Virtual Machine
Sở Tài Nguyên Môi Trường
Model-View-Controller
Access Control List
Javascript Object Notation
Doctrine Query Language
Application Programming Interface
Enviroment Management System
Đánh giá thẩm định tác động môi trường
Chuyên viên

I

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

DANH MỤC CÁC HÌNH
Hình 2.1: Mô hình MVC trong Zend Framework........................................................... 4 
Hình 2.2: Cơ chế hoạt động của Zend Framework ......................................................... 5 
Hình 2.3: Cấu trúc thư mục trong một ứng dụng Zend Framework ............................... 6 
Hình 2.4: Tích hợp PHP Word và PHP Excel vào Zend .............................................. 14 
Hình 2.5: Các thành phần của Activiti .......................................................................... 35 

Hình 2.6: Kết hợp Activiti và Vaadin ........................................................................... 41 
Hình 2.7: Cài đặt Activiti Designer .............................................................................. 43 
Hình 2.8: Tạo Activiti project và Activiti diagram ....................................................... 44 
Hình 2.9: Giao diện thiết kế diagram của Activiti Designer ........................................ 45 
Hình 2.10: Menu Upload Process Definition file ......................................................... 46 
Hình 2.11: Giao diện Upload Process Definition file ................................................... 46 
Hình 2.12: Các service class của ProcessEngine .......................................................... 47 
Hình 3.1: Quy trình nghiệp vụ ...................................................................................... 48 
Hình 3.2: Lược đồ use case ........................................................................................... 62 
Hình 3.3: Kiến trúc hệ thống......................................................................................... 67 
Hình 3.4: Kiến trúc server ............................................................................................. 67 
Hình 3.5 Kiến trúc phần mềm ....................................................................................... 68 
Hình 3.6: Class diagram ................................................................................................ 69 
Hình 3.7: Màn hình login vào EMS .............................................................................. 79 
Hình 3.8: Màn hình trang chủ ....................................................................................... 80 
Hình 3.9: Màn hình lịch làm việc ................................................................................. 80 
Hình 3.10: Màn hình quản lý cơ sở............................................................................... 81 
Hình 3.11: Màn hình tạo báo cáo .................................................................................. 81 
Hình 3.12: Màn hình backup/restore cơ sở dữ liệu ....................................................... 82 
Hình 3.13: Màn hình phân công tác nghiệp .................................................................. 82 
Hình 3.14: Màn hình quản lý quy trình......................................................................... 83 

GVHD: Ths. Nguyễn Thị Thanh Thủy

II

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM


DANH MỤC CÁC BẢNG
Bảng 2.1: Các kiểu dữ liệu ánh xạ trong Doctrine .....................................................17 
Bảng 2.2: Các hệ quản trị cơ sở dữ liệu được hỗ trợ bởi Activiti ..............................34 

GVHD: Ths. Nguyễn Thị Thanh Thủy

III

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

TÓM TẮT
TÊN ĐỀ TÀI:

Xây dựng hệ thống thẩm định môi trường cho Sở Tài Nguyên Môi
Trường TPHCM.
MỤC TIÊU NGHIÊN CỨU:
- Tìm hiểu Zend framework, Doctrine ORM, tích hợp Zend framework
và Doctrine để xây dựng nên hệ thống thẩm định môi trường-EMS
- Tìm hiểu Activiti trong quản lý quy trình lấy mẫu
- Tích hợp Activiti với EMS.
NỘI DUNG:
Chương 1: Mở đầu.
Giới thiệu lý do chọn đề tài và phạm vi nghiên cứu.
Chương 2: Tổng quan
Chương này giới thiệu về PHP và Zend framework, Doctrine
ORM, Activiti

Chương 3: Bài toán và phương pháp
Chương này trình bày về quy trình nghiệp vụ của STNMT, các
yêu cầu chức năng, phi chức năng của hệ thống, đặc tả usercase,
kiến trúc hệ thống, kiến trúc phần mềm, classdiagram, kết hợp
quản lý luồng công việc bằng Activiti vào EMS..
Chương 4: Kết quả đạt được và hướng phát triển.

GVHD: Ths. Nguyễn Thị Thanh Thủy

IV

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

MỤC LỤC
_Toc335031853DANH SÁCH CHỮ VIẾT TẮT ...................................................................... I 
DANH MỤC CÁC HÌNH ......................................................................................................... II
DANH MỤC CÁC BẢNG ...................................................................................................... III
TÓM TẮT ................................................................................................................................ IV 
Chương 1 ................................................................................................................................... 1
MỞ ĐẦU ................................................................................................................................... 1 
1.1.  Lý do chọn đề tài ......................................................................................................... 1 
1.2.  Phạm vi nghiên cứu ..................................................................................................... 1 
Chương 2 ................................................................................................................................... 2 
TỔNG QUAN ............................................................................................................................ 2 
2.1.  PHP và Zend Framework ............................................................................................ 2 
2.1.1.  Giới thiệu về PHP ................................................................................................. 2 
2.1.2.  Giới thiệu Zend Framework ................................................................................. 3 

2.2.  Doctrine ORM........................................................................................................... 15 
2.2.1.  Tổng quan về ORM ............................................................................................ 15 
2.2.2.  Doctrine framework............................................................................................ 16 
2.2.3.  Tích hợp Doctrine vào Zend Framework ........................................................... 30 
2.3.  Activiti ...................................................................................................................... 33 
2.3.1.  Giới thiệu Activiti ............................................................................................... 33 
2.3.2.  Nền tảng của Activiti .......................................................................................... 33 
2.3.3.  Các loại cơ sở dữ liệu được hỗ trợ bởi Activiti .................................................. 34 
2.3.4.  Các thành phần của Activiti ............................................................................... 34 
2.3.5.  Cài đặt Activiti ................................................................................................... 37 
2.3.6.  Cấu hình Activiti (5.9) sử dụng cơ sở dữ liệu MySQL ...................................... 38 
2.3.7.  Tích hợp Activiti với Spring............................................................................... 39 
2.3.8.  Tích hợp Activiti với Vaadin .............................................................................. 41 
2.3.9.  Eclipse Designer ................................................................................................. 42 
2.3.10.  Triển khai (Deployment) .................................................................................... 45 
2.3.11.  Engine API ......................................................................................................... 46 
Chương 3 ................................................................................................................................. 48 
BÀI TOÁN VÀ PHƯƠNG PHÁP .......................................................................................... 48 
3.1.  Quy trình nghiệp vụ thẩm định môi trường .............................................................. 48 
3.1.1.  Phân công tác nghiệp .......................................................................................... 48 
3.1.2.  Nhận kết quả xét nghiệm .................................................................................... 49 
3.1.3.  Cập nhật mẫu ...................................................................................................... 49 
3.1.4.  Cập nhật văn bản ................................................................................................ 51 
3.1.5.  Thông báo đến trưởng nhóm .............................................................................. 52 
3.1.6.  Xuất báo cáo ....................................................................................................... 52 
3.2.  Yêu cầu chức năng .................................................................................................... 53 
3.2.1.  Admin ................................................................................................................. 53 
3.2.2.  Manager .............................................................................................................. 55 
3.2.3.  Staff .................................................................................................................... 56 
3.3.  Yêu cầu phi chức năng .............................................................................................. 60 

3.3.1.  Security ............................................................................................................... 61 
3.3.2.  Performance ........................................................................................................ 61 
3.4.  Use case..................................................................................................................... 62 
3.4.1.  Lược đồ use case ................................................................................................ 62 
3.4.2.  Đặc tả use case.................................................................................................... 62 
GVHD: Ths. Nguyễn Thị Thanh Thủy

V

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM
3.5.  Kiến trúc hệ thống ..................................................................................................... 66 
3.6.  Kiến trúc phần mềm .................................................................................................. 68 
3.7.  Class diagram ............................................................................................................ 69 
3.8.  Tích hợp giữa Activiti và EMS ................................................................................. 69 
3.8.1.  Định nghĩa control trong Activiti explorer ......................................................... 70 
3.8.2.  Load dữ liệu từ CSDL lên Activiti explorer ....................................................... 71 
3.8.3.  Lưu dữ liệu từ Activiti explorer xuống CSDL ................................................... 74 
3.9.  Một số hình ảnh hệ thống .......................................................................................... 79 
Chương 4 ................................................................................................................................. 84 
KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN............................................................ 84 
4.1.  Kết quả đạt được ....................................................................................................... 84 
4.2.  Hướng phát triển ....................................................................................................... 84 
PHỤ LỤC A............................................................................................................................ 86 
XÂY DỰNG ỨNG DỤNG HELLO WORD VỚI ZEND FRAMEWORK ...................... 86 
PHỤ LỤC B ............................................................................................................................ 94 
CÁC LOẠI ÁNH XẠ QUAN HỆ TRONG DOCTRINE ................................................... 94 
PHỤ LỤC C.......................................................................................................................... 101 

BPMN 2.0 CONSTRUCTS ................................................................................................. 101 
PHỤ LỤC D.......................................................................................................................... 119 
CÀI ĐẶT ỨNG DỤNG ........................................................................................................ 119 

GVHD: Ths. Nguyễn Thị Thanh Thủy

VI

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Chương 1

MỞ ĐẦU
1.1. Lý do chọn đề tài
Trong những năm gần đây sự phát triển mạnh mẽ của công nghệ thông tin đã giúp
đỡ con người rất nhiều trong việc lưu trữ, thống kê, phân tích số liệu. Từ việc phải
ghi chép các số liệu riêng lẻ trên nhiều sổ sách khác nhau gây khó khăn trong việc
tổng hợp, phân tích số liệu thì giờ đây với sự giúp đỡ của hạ tầng mạng và phần mềm
tất cả công việc phân tích, thống kê đó đã được thực hiện một cách tự động và dữ
liệu được quản lý một cách tập trung nhất.
Hiện nay Sở Tài Nguyên Môi Trường thành phố Hồ Chí Minh đang phải quản lý
một lượng lớn thông tin về tình trạng môi trường và thông tin của những lần tác
nghiệp tại các công ty, xí nghiệp trên địa bàn thành phố Hồ Chí Minh. Vấn đề đặt ra
là do số lượng công ty, xí nghiệp quá lớn gây khó khăn trong việc nhập xuất, tìm
kiếm, thống kê từ đó dẫn đến các khó khăn trong quá trình tác nghiệp.
Để giải quyết vấn đề trên chúng tôi quyết định xây dựng một hệ thống quản lý
thong tin môi trường. Hệ thống sẽ giúp cho sở trong việc quản lý, phân tích số liệu

mẫu môi trường của các công ty, xí nghiệp trên địa bàn thành phố Hồ Chí Minh,
quản lý những lần tác nghiệp của sở đối với các công ty đó, đồng thời hệ thống cũng
đảm nhận việc quản lý các văn bản và nhân viên có liên quan.
1.2. Phạm vi nghiên cứu
 Tìm hiểu quy trình nghiệp vụ của Sở Tài Nguyên Môi Trường TPHCM, tìm hiểu
các yêu cầu chức năng và phi chức năng.
 Tìm hiểu ngôn ngữ PHP và Zend Framework.
 Tìm hiểu Doctrine ORM và tích hợp giữa Zend Frameowork và Doctrine ORM.
 Tìm hiểu và Việt hóa Activiti, từ đó xây dựng hệ thống quản lý luồng công việc
cho EMS.
 Phân tích lược đồ usecase hệ thống, phân tích kiến trúc phần mềm và kiến trúc
hệ thống từ đó tiến hành phát triển phần mềm.
 Tiến hành triển khai hệ thống cho Sở Tài Nguyên Môi Trường TPHCM.

GVHD: Ths. Nguyễn Thị Thanh Thủy

1

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Chương 2

TỔNG QUAN

2.1. PHP và Zend Framework
2.1.1. Giới thiệu về PHP
PHP (viết tắt của "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.
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua
đó máy chủ biết để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của PHP
giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng
phần giao diện ứng dụng HTTP.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có
sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập
nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy
mô doanh nghiệp.
Dưới đây là một số ưu điểm của PHP:
-

PHP có tốc độ xử lý nhanh, hiệu quả cao hơn các ngôn ngữ server
script khác.
PHP là mã nguồn mở, nên chi phí để phát triển hệ thống rất thấp thích hợp cho
các doanh nghiệp vừa và nhỏ.
Thời gian triển khai ứng dụng nhanh chóng, đơn giản và dễ cài đặt.
Số lượng nhà cung cấp hosting PHP khá nhiều.
PHP có sự hỗ trợ của cộng đồng phát triển mã nguồn mở rất lớn.
Tính linh động vì nó có thể chạy trên nhiều hệ điều hành khác nhau
như Unix, Windows và nhiều biến thể khác nhau của chúng.
Lập trình theo hướng đối tượng.
PHP sử dụng nhiều hệ quản trị cơ sở dữ liệu khác nhau, trong đó
có MySQL.
Dễ dàng cho việc học và sử dụng.


GVHD: Ths. Nguyễn Thị Thanh Thủy

2

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

2.1.2. Giới thiệu Zend Framework
Zend framework là một framework được phát triển trên nền PHP 5.0. Nó cung
cung cấp cho người lập trình 1 bộ thư viện được phát triển theo hướng đối tượng
(object-oriented programming). Zend framework hỗ trợ người dùng phát triển ứng
dụng theo mô hình MVC và có thể làm việc với nhiều loại cơ sở dữ liệu đồng thời
thay đổi giao diện ứng dụng dễ dàng.
2.1.2.1. Ưu điểm của Zend Framework

- Zend Framework là một PHP Framework được do chính công ty phát triển

-

ngôn ngữ PHP phát triển (www.zend.com). Vì vậy sẽ không có lý do nào mà
Zend Framework sẽ bị biến mất trong tương lai chỉ trừ khi PHP không còn tồn
tại nữa.
Zend Framework được xây dựng trên nền tảng lập trình hướng đối tượng nên
có thể thừa kế, nâng cấp các ứng dụng dễ dàng.
Thư viện Zend Frameword rất đầy đủ và phong phú.
Những thành viên phát triển Zend Framework là những chuyên gia nổi tiếng về
mã nguồn mở và PHP trên thế giới.

Mô hình MVC hoặc không theo chuẩn MVC trong Zend Framework rất linh
hoạt giúp chúng ta có thể tùy biến cấu hình ứng dụng theo ý muốn.
Tích hợp các thư viện, các thành phần khác một cách linh hoạt và nhanh chóng.
Tài liệu của Zend Framework rất đầy đủ và chi tiết. Ngoài ra sách, video, tài
liệu, ví dụ … được cộng đồng lập trình viên thế giới chia sẻ rất nhiều trên
internet
Cộng đồng người sử dụng Zend Framework rất rộng lớn.
Những ứng dụng lớn đã dần chuyển qua dùng Zend Framework làm nền tảng.

2.1.2.2. Mô hình MVC trong Zend Framework

GVHD: Ths. Nguyễn Thị Thanh Thủy

3

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Hình 0.1: Mô hình MVC trong Zend Framework
Model: thành phần model được 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 :
- 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.
- helpers : trong thư mục này chứa các lớp đượ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 các 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.
- 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 không mong muốn trong
quá trình nhập liệu thông qua bộ lọc này.
Controller: có nhiệm vụ điều hướng trang, 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 tớ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à chuyển hướng 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, các
cấu hình sử dụng cho website, Bẫy lỗi của ứng dụng và đưa về cho errorController
xử lý.
GVHD: Ths. Nguyễn Thị Thanh Thủy

4

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

2.1.2.3. Cơ chế hoạt động của Zend Framework

Hình 0.2: Cơ chế hoạt động của Zend Framework
Khi có request từ người dùng thì lập tức bootstrap file (index.php) sẽ đón nhận

request này và giao nhiệm vụ điều khiển hướng truy cập cho Front Controller, Front
Controller sẽ chọn và gọi action tương ứng. Sau đó action này sẽ tương tác với
Zend_Db_Table (Model) và trả kết quả về cho Zend_View (View). Cuối cùng, hiển
thị kết quả ra trình duyệt.

2.1.2.4. Cấu trúc của một ứng dụng Zend Framework

GVHD: Ths. Nguyễn Thị Thanh Thủy

5

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Hình 0.3: Cấu trúc thư mục trong một ứng dụng Zend Framework
Thư mục library: chứa thư viện Zend và các thư viện mở rộng khác.
Thư mục test: là thư mục chứa các file test khi chúng ta tiến hành test ứng dụng.
Thư mục public: chứa các file mà chúng ta cho mọi người nhìn thấy như: css, js,
hình ảnh, các tập tin khác…
Thư mục application: đây là thư mục chính của ứng dụng. Lúc mới tạo project
trong thư mục này sẽ có 1 module mặc định mà zend gọi là module default. Nếu
chúng ta có nhiều module khác nhau thì chúng ta sẽ có thêm 1 thư mục module trong
thư mục application này. Trong thư mục này còn chứa file Bootstrap.php, file này
chứa 1 số cấu hình cho hệ thống như thông tin về database. Thông tin về các
module… File Bootstrap.php là file được chạy đầu tiên trong hệ thống mỗi khi có 1
kết nối vào.
Ví dụ:


GVHD: Ths. Nguyễn Thị Thanh Thủy

6

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

GVHD: Ths. Nguyễn Thị Thanh Thủy

7

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

File application.ini nằm trong thư mục application/config/: file này chứa các
thông tin cấu hình kết nối database, timezone, ngoại lệ, đường dẫn file bootstrap, thư
mục chứa module, thư mục chứa template. Các cấu hình này sẽ được triệu gọi bởi
file index.php ở lần chạy đầu tiên của ứng dụng.

File index.php: đây là file chạy mặc định trong 1 ứng dụng của Zend Frameword.
Nó có thể được đặt ở thư mục gốc hoặc trong thư mục public. File này sẽ chỉ định
GVHD: Ths. Nguyễn Thị Thanh Thủy

8

SVTH: Quyền, Long



Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

đường dẫn đến thư mục application, khởi tạo biến môi trường cho ứng dụng, chỉ định
đường dẫn đến file application.ini, đường dẫn đến các thư viện….

2.1.2.5. Một số lớp phổ biến trong Zend
-

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 đó

GVHD: Ths. Nguyễn Thị Thanh Thủy

9


SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

-

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ả xử lý trong Controller và Model ra bên ngoài

2.1.2.6. Các thành phần phổ biến trong Zend Framework
2.1.2.6.1. Zend Controller
Các thành phần của Zend Controller:
Zend_Controller_Front: dàn xếp, bố trí toàn bộ dòng xử lí của Zend Controller.
Nó xử lý tất cả các request đến server và chịu trách nhiệm chuyển request tới
actionController. (Zend_Controller_Action). Zend_Controller _Front là controller
quan trọng nhất.
Zend_Controller_Request_Abstract: (thường được hiểu là Request Object): nó
tiếp nhận các request và cung cấp 1 số phương thức để có thể thiết lập và lấy tên của
một số controller và action và một số yêu cầu khác. Ngoài ra nó còn theo dõi nhũng
action của nó mà được gọi từ Zend_Controller _Dispatcher. Phần mở rộng cho phép

abstract request object có thể đóng goi các request để có thể định hướng lấy và thiết
lập thông tin tên của một số controller và action.
Zend_Controller_Request_Http: sẽ được sử dụng để nhận toàn bộ yêu cầu từ
môi trường HTTP.
Zend_Controller_Router_Interface: dùng để xác định các bộ định tuyến
(Router). Routing là quá trình kiểm tra những request nhằm xác định controller,
action cho request đó. Những controller, action và các thông số tuỳ chọn sau khi
được thiết lập sẽ được xử lý bởi Zend_Controller_Dispatcher_Standard, Routing chỉ
được thực hiện 1 lần khi yêu cầu được nhận và trước khi controller đầu tiên được gửi
đi.
Zend_Controller_Router_Rewrite: lả Router mặc định sẽ nhận vào một địa chỉ
URL và phân tích phần cuối của địa chỉ này để chuyển đến nơi nó cần xử lý. Ví dụ:
http://localhost/foo/bar/key/value url này được phân tích thành 1controller là foovà
action là bar, có tham số đi kèm là value.

GVHD: Ths. Nguyễn Thị Thanh Thủy

10

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Zend_Controller_Dispatcher_Interface: dùng để ánh xạ những controller và
action từ đối tượng request tới những lớp và phương thức tương ứng. Mặc định
Zend_Controller_Dispatcher_Standard sẽ được dùng, nó định nghĩa cách ánh xạ
những controller tới các lớp được đặt tên theo cú pháp MixedCase, còn action tới
những phương thức được đặt tên theo cú pháp camelCase.
Zend_Controller_Action: định nghĩa action cơ bản cho controller. Mỗi controller

phải được mở rộng từ lớp này để định nghĩa các action.
Zend_Controller_Response_Abstract : định nghĩa lớp response dùng để chọn
lọc và trả về reponse từ action. Mặc định là lớp Zend_Controller_Response _Http
được dùng cho môi trường HTTP.
Tóm lại: Request được nhận bởi Zend_Controller_Front, Zend_Controller_Front
sẽ gọi Zend_Controller_Router_Rewrite để chọn controller và action để gửi đi.
Zend_Controller_Router_Rewrite sẽ phân tích URL để biết tên của controller và
action. Zend_Controller_Front sau đó thực hiện vòng lặp dispatch. Nó gọi
Zend_Controller_Dispatcher_Standard để gửi request tới controller và action. Sau
khi controller xử lí xong nó trả về cho Zend_Controller_Front. Quá trình kết thúc.
2.1.2.6.2. Zend Form
Zend form dùng để tạo ra các form nhập liệu. Zend form hỗ trợ tạo ra các thành
phần của 1 form khá đơn giản và xử lý form. Nó thực hiện được các công việc sau:
- Thêm vào các input cũng như lọc dữ liệu và kiểm tra dữ liệu.
- Sắp xếp các phần tử.
- Nhóm các input lại với nhau.
2.1.2.6.3. Zend Mail
Zend mail hỗ trợ người phát triển có thể gửi nhận mail thông qua máy chủ mail
server. Điều mà chúng ta cần làm là cung cấp cho zend mail 1 tài khoản và mật khẩu
của địa chỉ mail, thông tin về server như cổng kết nối, đia chỉ của server…
Zend mail hỗ trợ:
- Gửi mail bằng Sendmail và SMTP.
- Nhận mail bằng POP3, IMAP
- Gửi E-mail dạng text.
- Giửi E-mail dạng HTML.
- Sử dụng tất cả các function mà E-mail hỗ trợ như : thêm tiêu đề, CC, BCC..
- Đính kèm tập tin trong E-mail.
- Mặc định thì Zendmail sẽ sử dụng Sendmail
GVHD: Ths. Nguyễn Thị Thanh Thủy


11

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

2.1.2.6.4. Zend Cache
Zend cache giúp cho chúng ta có thể cache lại một số dữ liệu một cách tự động.
Nó đóng vai trò như một bộ nhớ đệm lưu trữ các dữ liệu trong 1 thư mục. Khi dùng
cache sẽ giúp cho brower chạy nhanh hơn hạn chế việc truy xuất vào cơ sở dữ liệu.
Chức năng cache của Zend được thực hiện thông qua Zend_Cache_Core. Nó là 1
lớp generic, linh hoạt và có thể được hiện thực lại.
Zend cache cho phép:
- Cache dữ liệu dạng text.
- Cache dữ liệu theo file.
- Cache dữ liệu theo từng lớp, lữu trữ dữ liệu dưới dạng entity, hoặc phương thức
thông qua cached_entity và cached_methods.
- Hỗ trợ cache theo biến, cache cả trang theo URL, cache dữ liệu được lấy từ cơ
sở dữ liệu nhằm hạn chế truy xuất cơ sở dữ liệu.
- Phân nhóm dữ liệu cache giúp cho việc truy xuất vào cache nhanh hơn.
- Xoá cache đã hết hạn hoặc không dùng đến nữa.
2.1.2.6.5. Zend JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation) là 1 định dạng hoán vị dữ liệu nhanh. Chúng là
cơ sở dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu chuẩn ECMA-262
phiên bản 3 - tháng 12 năm 1999.
JSON là 1 định dạng kiểu text mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh,
thuộc họ hàng với các ngôn ngữ họ hàng C, gồm có C, C++, C#, Java, JavaScript,
Perl, Python, và nhiều ngôn ngữ khác. Những đặc tính đó đã tạo nên JSON 1 ngôn
ngữ hoán vị dữ liệu lý tưởng.

JSON được xây dựng trên 2 cấu trúc:
- Là tập hợp của các cặp tên và giá trị name-value. Trong những ngôn ngữ khác
nhau, đây được nhận thấy như là 1 đối tượng (object), bản ghi (record), cấu trúc
(struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (key list),
hay mảng liên hợp.
- Là 1 tập hợp các giá trị đã được sắp xếp. Trong hầu hết các ngôn ngữ, nó có thể
là 1 mảng, vector, tập hợp. Đây là 1 cấu trúc dữ liệu phổ dụng. Hầu như tất cả
các ngôn ngữ lập trình hiện đại đều hỗ trợ.
JSON dùng để trao đổi dữ liệu giữa Javascript và các ngôn ngữ khác. Nó là một
định dạng hiệu quả và gọn nhẹ hơn XML để trao đổi dữ liệu với javascript client.
GVHD: Ths. Nguyễn Thị Thanh Thủy

12

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Ngoài ra Zend_Json còn cung cấp 1 cách thuận tiện để chuyển đổi dữ liệu hiệu
quả hơn từ định dạng XML thành 1 chuỗi định dạng của JSON. Tính năng này được
phát triển và xây dựng nên giúp cho những người phát triển PHP có thể gửi dữ liệu
đã được mã hoá từ định dạng XML thành định dạng JSON trước khi nó gửi cho
brower thông qua Ajax. Nó làm cho quá trình truyền và chuyển đổi dữ liệu trở nên
nhanh chóng từ máy chủ từ đó tránh được việc phân tích và xử lý XML trên các trình
duyệt.
2.1.2.6.6. Zend_ACL
Zend_Acl cung cấp cho người dùng cách thức linh hoạt và dễ dàng trong việc
quản lý quyền hạn. Thông qua việc hiện thực Zend_Acl người dùng có thể bảo vệ
các thành phần của ứng dụng theo từng request.

Access control list xác định một người nào đó có thể thực thi một action trên một
resource cho trước không. Zend_Acl được hiện thực với:
- Roles: xác định ai đang gọi action
- Resources: chỉ định tài nguyên cần được bảo vệ
- Rights: chỉ định quyền hạn của Role trên Resource
2.1.2.7. Tích hợp thư viện bên ngoài vào Zend Framework
 Tích hợp PHP Word và PHP Excel
 Giới thiệu
PHP Word và PHP Excel là hai thư viện mã nguồn mở viết bằng PHP giúp chúng
ta xuất dữ liệu ra file word và file excel trên web. PHP Word hỗ trợ người dùng tạo
và định dạng các thành phần trong word như văn bản, page break, ảnh, bảng, list,
link, header, footer đồng thời hỗ trợ tạo file word từ template có sẵn. PHP Excel hỗ
trợ đọc, viết và xuất dữ liệu dưới dạng speadsheet như Excel (BIFF) .xls, Excel 2007
(OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF,
HTML.
 Cài đặt
Bước 1: Download PHP Word tại />releases/view/49543, download PHP Excel tại />releases/view/88098. Sau đó copy 2 thư viện này vào thư mục library của ứng dụng.

GVHD: Ths. Nguyễn Thị Thanh Thủy

13

SVTH: Quyền, Long


Xây dựng hệ thống quản lý thông tin môi trường cho Sở Tài Nguyên Môi Trường TP HCM

Hình 0.4: Tích hợp PHP Word và PHP Excel vào Zend
Bước 2: Định nghĩa namespace để Zend load các thư viện của PHP Word và PHP
Excel thông qua cơ chế lazy loading. Trong file {application

path}/config/application.ini chúng ta thêm vào các dòng sau:
autoloaderNamespaces[] = "PHPExcel_Classes_PHPExcel_"
autoloaderNamespaces[] = "PHPWord_PHPWord_"

Bước 3: Trong file xử lý dữ liệu cần xuất ra định dạng word hoặc excel thêm đoạn
code sau
o Xuất file word:
require_once '../PHPWord.php';
// New Word Document
$PHPWord = new PHPWord();
// New portrait section
$section = $PHPWord->createSection();
// Add text elements
$section->addText('Hello World!');
$section->addTextBreak(2);
$section->addText('I am inline styled.', array('name'=>'Verdana', 'color'=>'006699'));
$section->addTextBreak(2);
$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>true, 'size'=>16));
$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));

GVHD: Ths. Nguyễn Thị Thanh Thủy

14

SVTH: Quyền, Long


×