Tải bản đầy đủ (.doc) (67 trang)

xây dựng ứng dụng quản lý nhân sự trên nền framework yii

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 (1.29 MB, 67 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HỒ CHÍ MINH
KHOA CNTT
LUẬN VĂN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHÂN SỰ TRÊN NỀN
FRAMEWORK YII
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Giảng viên hướng dẫn :Th.S Nguyễn Lương Anh Tuấn
Sinh viên thực hiện : Nguyễn Thị Tuyền
MSSV: 11L1120055 Lớp: CN11LT
TP Hồ Chí Minh, 2013
LỜI CAM ĐOAN
Tôi xin cam đoan rằng đây là công trình nghiên cứu của tôi, có sự hỗ trợ từ Giáo
viên hướng dẫn là Th.S Nguyễn Lương Anh Tuấn. Các nội dung nghiên cứu và kết
quả trong đề tài này là trung thực. Những số liệu trong các bảng biểu phục vụ cho
việc phân tích, nhận xét, đánh giá được chính tôi thu thập từ các nguồn khác nhau
có ghi trong phần tài liệu tham khảo. Ngoài ra, đề tài còn sử dụng một số nhận
xét, đánh giá cũng như số liệu của các tác giả, cơ quan tổ chức khác, và
cũng được thể hiện trong phần tài liệu tham khảo.
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước
Hội đồng, cũng như kết quả luận văn của mình.

TP.HCM, ngày 26 tháng 12 năm 2013
Sinh viên thực hiện
Nguyễn Thị Tuyền
Trang 2
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành sâu sắc nhất đến tới Ban Giám hiệu Nhà trường
cùng quý thầy cô Khoa Công Nghệ Thông Tin Trường Đại học Giao thông Vận tải
TP.HCM đã chỉ bảo và truyền đạt cho em những kiến thức quý báu trong suốt hai năm
học vừa qua.


Đặc biệt em xin chân thành cám ơn Thầy giáo Nguyễn Lương Anh Tuấn giảng viên bộ
môn Công nghệ thông tin Trường Đại học Giao Thông Vận Tải TP HCM đã tận tình
giúp đỡ em trong quá trình thực hiện đề tài tốt nghiệp.
Em cũng gửi lời cám ơn sâu sắc đến những người thân trong gia đình, các anh chị nơi
làm việc và bạn bè đã ủng hộ, giúp đỡ và động viên em trong những lúc khó khăn,
cũng như trong suốt những năm học vừa qua.
Mặc dù đã cố gắng hoàn thành đề tài với tất cả sự nổ lực của bản thân, nhưng chắc
chắn không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông và tận tình
chỉ bảo của quý Thầy Cô.
Em xin chúc trường Đại học Giao thông Vận tải thành phố Hồ Chí Minh trở thành một
đơn vị giáo dục vững mạnh, đào tạo ra nhiều kỹ sư tài năng cho đất nước .
Cuối cùng em xin kính chúc toàn thể quý thầy cô nhà trường dồi dào sức khoẻ, gặp
nhiều thuân lợi trong công tác cũng như trong cuộc sống.
Em xin chân thành cám ơn.
TP. HCM ngày 26 tháng 12 năm 2013
Sinh viên thực hiện
Nguyễn Thị Tuyền
Trang 3
NHẬN XÉT CỦA GIÁO VIÊN
























NHẬN XÉT CỦA GIÁO VIÊN

Trang 4























MỤC LỤC
Trang 5
DANH MỤC HÌNH
Trang 6
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
LỜI MỞ ĐẦU
Công nghệ thông tin (CNTT) càng ngày càng trở nên quan trọng và là công cụ không
thể thiếu đối với các doanh nghiệp (DN). Mức độ áp dụng CNTT với doanh nghiệp qui
mô dù nhỏ hay lớn ở góc độ nào đó nói lên sự chuyên nghiệp trong công tác quản lý và
điều hành của doanh nghiệp. Tin học hóa và sự phát triển của DN là hai yếu tố tác
động tương hỗ lẫn nhau, kết quả đạt được sẽ là hiệu quả kinh doanh, sự chuyên nghiệp
trong vận hành. Nhiều người nghĩ rằng các công ty hoạt động kinh doanh hiệu quả có
khả năng đầu tư hệ thống tin học hóa cao và quá trình triển khai tin học hóa diễn ra
suôn sẻ, thực tế đã khẳng định rằng đó là một quá trình không dễ dàng. Có rất nhiều
rào cản cần phá bỏ, bắt đầu từ cách nghĩ đến cách làm. Đó chính là lý do tại sao có rất
nhiều công ty đầu tư hàng trăm triệu cho đến hàng chục tỉ đồng vào việc mua các ứng
dụng để chuyên nghiệp hoá hoạt động quản lý, điều hành của mình.
Ứng dụng từng phần hay tổng thể
Nhiều DN trong thời gian qua đã tích cực đầu tư trang bị nhiều phần mềm riêng lẻ
phục vụ cho các mục đích quản lý khác nhau như: Kế toán, quản lý bán hàng, quản lý
kho, điều hành thông tin nội bộ, quản lý nhân sự, lập kế hoạch sản xuất Các phần
mềm này đã phát huy tác dụng lớn nhưng khi gặp phải vấn đề mở rộng hệ thống thì DN
lại lúng túng không biết kết nối chúng với nhau như thế nào để có thể dùng chung

thông tin, giảm công sức nhập dữ liệu đầu vào, và có được thông tin đầu ra tổng hợp
hơn
Thực tế có nhiều DN VN hiện nay đã tin học hóa một số khâu trong hoạt động sản
xuất kinh doanh như mua phần mềm kế toán, quản lý nhân sự theo cách áp dụng từng
phần, nghĩa là cần chỗ nào thì bịt chỗ đó mà chưa có kế hoạch hay chiến lược tổng thể,
do đó kết quả là giải quyết được vấn đề này thì phát sinh vấn đề khác. Điều này một
Trang 7
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
phần do kinh phí đầu tư, năng lực của nhà cung cấp và triển khai giải pháp, quan trọng
hơn hết là nhận thức và tư duy của lãnh đạo doanh nghiệp.
Việc áp dụng hệ thống quản lý nhân sự, quản lý kinh doanh, quản trị sản xuất và tổng
thể hơn là ERP (Enterprise Resource Planning - Hệ thống hoạch định nguồn lực DN)
hoặc hệ thống quản lý ISO có thể thực hiện từng phần, nhưng lựa chọn giải pháp gì và
nhà cung cấp nào là việc làm có tính tổng thể, tránh trường hợp khi mở rộng, doanh
nghiệp phải bỏ cái cũ và xây cái mới từ đầu.
Mua và áp dụng phần mềm thường rất dễ dàng?
Phần lớn các DN Việt Nam là các doanh nghiệp vừa và nhỏ (kể cả siêu nhỏ) tuy khả
năng tiếp cận với các hệ thống quản lý chuyên nghiệp đã dễ dàng hơn nhưng kinh
nghiêm quản lý, qui trình quản lý, hệ thống quản lý chưa được áp dụng một cách có
khoa học và triệt để, do đó khi thay đổi mô hình quản lý thuận tiện (có khi tuỳ tiện)
sang mô hình quản lý theo mục tiêu, theo qui trình… thường gặp rất nhiều khó khăn
Một phần mềm có sẵn để áp dụng cho doanh nghiệp có vẻ là 1 giải pháp đơn giản và
dễ dàng, bởi lẽ phần mềm có sẵn thì thường được sử dụng đại trà và bán với giá khá
hấp dẫn. Có thể thấy các dạng phần mềm đóng gói như Microsoft Windows, Office,
Accounting, HRM có mặt rất nhiều trên thị trường, đặc biệt với phần mềm Kế Toán,
Nhân Sự… các doanh nghiệp CNTT phát triển sản phẩm với tính năng gần như là
tương đồng với nhau và thường khác ở tên gọi mà doanh nghiệp muốn xây dựng
thương hiệu. Đặc điểm chung của phần mềm có sẵn này thường giới hạn bởi các chức
năng, người sử dụng phần lớn phải theo qui trình sẵn trên phần mềm, ít nhà cung cấp
phần mềm cung cấp thêm theo các yêu cầu riêng của từng khách hàng ( nếu yêu cầu

riêng chi phí sẽ tăng lên)
Sự hiểu biết không rõ ràng cùng với kinh phí đầu tư lớn cho dự án buộc DN phải cân
nhắc kỹ trước khi quyết định
Trang 8
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Việc mua phần mềm đóng gói và tự triển khai hoặc chính đơn vị viết phần mềm đi
triển khai là không quá khó, tuy nhiên nó chỉ phù hợp với những ứng dụng nhỏ và đơn
giản. Những ứng dụng lớn hơn buộc phải có sự can thiệp của các công ty có bề dày
kinh nghiệm cũng như cần có góc nhìn rộng hơn thay vì chỉ là một phần mềm
Mua phần mềm hay mua giải pháp ?
Có rất nhiều DN đã trải qua việc áp dụng phần mềm nhiều lần không thành công. Lý
do là vì ở nhiều nhiều doanh nghiệp áp dụng phần mềm nhưng chưa có hệ thống, qui
trình chuẩn trước đó. Những doanh nghiệp triển khai thành công, điểm chung của họ là
đã có hệ thống quản lý, khi đó phần mềm chỉ là công cụ để thay thế hoạt động trên giấy
sang hoạt động trên máy.
Quyết tâm của Ban lãnh đạo là yếu tố không nhỏ trong việc triển khai giải pháp CNTT,
việc triển khai thời gian đầu sẽ ảnh hưởng nhất định đến hiệu suất công việc chung, do
đó nếu thiếu quyết tâm và sợ khó, việc triển khai sẽ gặp rất nhiều khó khăn
Ngoài ra, người sử dụng cũng cần được trang bị những kiến thức, tư duy mở, thích
nghi với sự thay đổi ngoài việc chỉ hướng dẫn làm thế nào để sử dụng phần mềm. Tư
duy người sử dụng không mở cũng sẽ là một rào cản rất lớn cho việc ứng dụng CNTT
trong doanh nghiệp
Như vậy, doanh nghiệp cần một giải pháp tổng thể và có thể thực hiện từng bước đơn
lẻ thay vì chỉ nghĩ đến phần mềm, việc tin học hoá hoạt động của doanh nghiệp đơn
giản là dùng CNTT làm công cụ chuyển hoá hoạt động trên giấy sang hoạt động trên
máy để tận dụng sự ưu việt của công nghệ thông tin
Xuất phát từ hiện trạng nơi công ty em làm việc, em xin phát triển một ứng dụng quản
lý nhân sự “ xây dựng ứng dụng quản lý nhân sự trên nền framework Yii”.
Trang 9
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp

Do kiến thức và kinh nghiệm của bản thân còn hạn chế nên việc thực hiện không thể
tránh khỏi những thiếu xót. Rất mong được sự đóng góp ý kiến của quý thầy cô trong
bộ môn công nghệ thông tin trường Đại học Giao Thông Vận Tải cùng toàn thể bạn bè
để đề tài em càng hoàn thiện và ứng dụng thực tiễn một cách tốt nhất.

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Giới thiệu đề tài:
Tên đề tài: Quản lý nhân sự (Employee System Management )
Trang 10
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Xuất phát từ nhu cầu quản lý nhân viên với văn phòng, giảm tải công việc hàng
ngày cho người quản lý, chuyển hoá hoạt động trên giấy sang hoạt động trên máy
để tận dụng sự ưu việt của công nghệ thông tin, ứng dụng này sẽ thực hiện việc
quản lý nhân viên, thông tin hồ sơ(profile), đăng ký ngày nghỉ (vacation), gửi
thông báo, quản lý hợp đồng…
1.2. Mục đích đề tài:
- Quản lý thông tin người dùng, thông tin hồ sơ
- Quản lý ngày nghỉ
- Gửi thông báo trong hệ thống
- Quản lý hợp đồng
- Quản lý các hành động tác động vào hệ thống
- Tìm kiếm thông tin nhân viên, xuất excel danh sách nhân viên
- Tìm kiếm thông tin hợp đồng, xuất excel danh sách hợp đồng
- Tìm kiếm thông tin hồ sơ nhân viên, xuất file excel danh sách, xuất file pdf chi
tiết hồ sơ nhân viên
- Thay đổi mật khẩu, quên mật khẩu
- Tính toán lương từ Net sang Gross và ngược lại
- Tìm hiểu framework Yii, cơ sở dữ liệu Mysql
CHƯƠNG 2: GIỚI THIỆU CÔNG NGHỆ
Trang 11

GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
2.1. Ngôn ngữ lập trình PHP
2.1.1. Định nghĩa
PHP là chữ viết tắt của “ Personal Home Page” do Rasmus Lerdorf tạo ra năm
1994. Vi tính hữu dụng và khả năng phát triển, PHP bắt đầu được sử dụng trong
môi trường chuyên nghiệp và nó trở thành 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ở, dùng cho mục đích tổng
quát. 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.
PHP là mã nguồn mở do đó tất cả các đặc tính đều miễn phí, vì vậy mà có một
cộng đồng rộng lớn luôn cải tiến và khắc phục lỗi.
2.1.2. Lịch sử phát triển
2.1.2.1. PHP/FI
PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của
các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của
ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page
Tools'. Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi
bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử
dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã
Trang 12
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong
nó đồng thời cải tiến mã nguồn.
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số
các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các

biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML
nhúng. Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản
và có phần thiếu nhất quán.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút
được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã
được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng
Internet. Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh
mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một
người.
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời
gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau
đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0.
2.1.2.2. PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các
phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và
Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó.
Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết
sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ
đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực hợp tác và
bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus
và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế
tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0.
Trang 13
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng
mạnh mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ
tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các
tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và
đề xuất các mô đun mở rộng mới. Hoàn toàn có thể kết luận được rằng đây
chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0. Các tính

năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối
tượng và nhiều cú pháp ngôn ngữ nhất quán khác.
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối
liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0
gợi nhắc. Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của
"PHP: Hypertext Preprocessor".
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục
ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời
kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên
mạng Internet.
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9
tháng được cộng đồng kiểm nghiệm.
2.1.2.3. PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố,
Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của
PHP. Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và
cải tiến tính mô đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy
được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở
dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý
các ứng dụng phức tạp như thế này một cách có hiệu quả.
Trang 14
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của
Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công,
và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ
này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được
công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài
tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu
khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP,
tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập

vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới.
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng
triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng
Internet.
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn
người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và
tài liệu kĩ thuật cho PHP
2.1.2.4. PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển
PHP tự mãn.Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém
của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý
XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ
dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết
Zend Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot đã cho thấy việc
phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng
những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên
mạng Internet vào khoảng tháng 7 năm 2002. Ngày 29 tháng 6 năm 2003, PHP
5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là
Trang 15
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào
tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi:
Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị
loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công
bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả
năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều
hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một
chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù
coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong
đó đáng kể là lỗi xác thực HTTP.

Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo
ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện
các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có
những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản
PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SP.
2.1.2.5. PHP 6
Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở
phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn
chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API
chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện
PECL
2.2. MySQL
- SQL là chuẩn ngôn ngữ ANSI để truy cập cơ sở dữ liệu.
Trang 16
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
- SQL là viết tắt của Structured Query Language – là một hệ quản trị cơ sở dữ
liệu mở, hoàn toàn miễn phí. MySQL được sử dụng phổ biến trong lập trình
website động với PHP, chúng ta hay gọi chung là lập trình PHP & MySQL.
- MySQL cung cấp cho chúng ta cách truy vấn, thao tác với dữ liệu tương tự như
SQL nhưng ở mức độ đơn giản hơn.
 Cấu trúc dữ liệu MySQL :
- MySQL lưu trữ dữ liệu theo dạng bảng.
- Mỗi cơ sở dữ liệu bao gồm 1 hoặc nhiều bảng
- Mỗi bảng chứa một hoặc nhiều cột để lưu trữ giữ liệu, cột có thuộc tính như:
kiểu dữ liệu là gì, khóa chính, chiều dài dữ liệu, …
- Dòng là tập hợp giá trị của tất cả các cột trong bảng, một bảng thường bao
gồm rất nhiều record.
- Một số kiểu dữ liệu phổ biến thường được sử dụng trong MySQL
Kiểu dữ liệu Mô tả

Trang 17
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
INT Định dạng kiểu số nguyên có chiều dài từ 0 –
4294967214
Float Định dạng số thực có chiều dài 4 bytes
Double Định dạng số thực có chiều dài 8 bytes
Char Định dạng text chiều dài từ 0 – 255
Varchar Định dạng text có chiều dài từ 0 – 255
Text Định dạng text có chiều dài từ 0 – 65535
Longtext Định dạng text có chiều dài 0 – 4294967214
Date Lưu trữ thời gian theo định dạng YYYY-MM-DD
DateTimeTimeStamp Lưu trữ thời gian theo định dạng YYYY-MM-DD
HH:MM:SS
Decimal Lưu trữ số thực theo đinh dạng chứa dấu “,”
Bảng 1.2: Một số kiểu dữ liệu thường dùng trong MySql
 Có các tính năng sau:
- Cho phép truy cập dữ liệu.
- Thực hiện các câu truy vấn
- Tạo mới, cập nhật, xóa dữ liệu
2.3. Yii Framework
2.3.1. Khái quát
- Yii là PHP framework hỗ trợ tốt cho việc phát triển Web 2.0
Trang 18
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
- Yii giúp nhà phát triển xây dựng những ứng dụng phức tạp với thời gian
nhanh nhất
- Yii được phát âm là Yee hoặc [ji:], Yii là viết tắt của “Yes It Is!”. Ý nghĩa
của nó là “Is it fast? Is it secure? Is it professional? Is it right for my
next project? Yes, it is!”
- Yii hoàn toàn miễn phí, là ứng dụng Web mã nguồn mở được phát triển bằng

ngôn ngữ PHP5. Yii giúp cho việc phát triển ứng dụng Web tuân theo một
khuôn khổ nhằm đảm bảo tính hiệu quả, tính mở rộng, và tính bảo trì của sản
phẩm.
- Tối ưu hiệu suất, Yii là sự lựa chọn hoàn hảo cho các dự án có quy mô. Yii
cho phép nhà phát triển kiểm soát toàn bộ cấu hình. Yii cung cấp các công
cụ giúp kiểm tra và sửa lỗi ứng dụng dễ dàng.
2.3.2. Lịch sử
Yii được sáng lập bởi Qiang Xue, người trước đây đã phát triển và bảo trì
Prado framework. Dự án Yii được bắt đầu từ ngày 01/01/2008 và sau gần
một năm phát triển, ngày 03/12/2008 Yii 1.0 được chính thức phát hành.
2.3.3. Ý tưởng
Yii kết hợp nhiều ý tưởng từ các framework và các ứng dựng Web nổi tiếng khác.
Dưới đây là một số ý tưởng Yii đã tham khảo:
- Prado: là nguồn gốc chủ yếu cho ý tưởng phát triển Yii, bao gồm:
component và mô hình lập trình hướng sự kiện, các lớp database, mô hình
kiến trúc ứng dụng, i18n và l10n, và nhiều tính năng khác
- Ruby on Rails: Yii kế thừa quy ước về cấu hình
Trang 19
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
- jQuery: được tích hợp trong Yii framework
- Symfony: Yii kế thừa ý tưởng về filter và kiến trúc plug-in
- Joomla: Yii kế thừa cách thiết kế module và message translation
- Là framework ngôn ngữ PHP, mà điểm nhấn của nó là khả năng mở rộng,
khả năng tái sử dụng.
- Khả năng tái sử dụng và mở rộng của Yii rất cao. Yii là 1 Framework hoàn
toàn hướng đối tượng. Mọi thứ trong Yii đều có thể tái sử dụng và mở rộng
rất dễ dàng.
- Yii hỗ trợ trên tất cả các DBMS bởi PDO (PHP Data Object).
Hiệu suất xử lý của Framework Yii hiệu quả cao. Biểu đồ dưới đây cho thấy hiệu
quả hơn hẳn so với các Framework PHP khác. RPS là viết tắt của “Request per

second” nhằm mô tả việc làm mới ứng dụng có thể xử lý trong mỗi giây.
Trang 20
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Biểu đồ 2.2: So sánh hiệu suất xử lý các framework “Nguồn www.phpide.com (2008)”
Các thành phần chính của Yii:
- Application
- Controller
- Component
- Model
- View
- Widget
Trang 21

GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
2.3.3.1. Luồng xử lý logic
Biểu đồ 3.2: Luồng xử lý yêu cầu trong YII “Nguồn />Về cơ bản, cách làm việc của Yii được thực hiện qua các bước sau:
- Yêu cầu (request) của người dùng được trình duyệt gửi cho Web server.
Web server chuyển tiếp request cho index.php xử lý. Index.php có chức
năng tạo một thực thể Application và thực thi nó
- Application tạo ra các App Component (App Component là các thành phần
của ứng dụng, vd: UrlManager, HttpRequest)
- App Component gửi các thành phần của mình cho Application quản lý
Trang 22
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
- Application xác định các controller và action từ request và gửi chúng cho
UrlManager quản lý. Tiếp đến Application tiến hành thực thi controller
- Controller có thể tạo ra các model để xử lý dữ liệu
- Model gửi dữ liệu cho Controller
- Controller gửi các biến, các thể hiện của model cho View
- View tạo ra các Widget

- View thực hiện trình bày trang web
Đôi khi chúng ta cần thay đổi workflow để tùy biến trang web. Yii cho phép
chúng ta làm được điều này qua workflow sau:
Biều đồ 4.2: Luồng xử lý yêu cầu khác trong YII “Nguồn /> Application
Trang 23


GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Yii của Application là để giải quyết các request của người dùng. Gửi chúng cho
controller thích hợp để tiếp tục xử lý. Application là trung tâm quản lý toàn bộ cấu
hình của ứng dụng.
 Các công việc chủ yếu của Application là:
+ Chuẩn bị khởi tạo Application (Pre-initializes the application)
+ Thiết lập autoloader và điều khiển error (Set up class autoloader and
error handling)
+ Đăng ký các App Component cốt lõi (Register core application
components)
+ Nạp cấu hình ứng dụng (Load application configuration)
+ Khởi tạo Application (Initialize the application)
+ Raise onBeginRequest event
+ Xử lý request của người dùng (Process the user request)
+ Giải quyết request của người dùng (Resolve the user request)
+ Tạo và thực thi Controller (Create & Run controller)
+ Raise onEndRequest event
 Để cấu hình Application ta sử dụng file (hoặc array) để khởi tạo giá trị của
các thuộc tính. File cấu hình được chứa trong thư mục
protected/config/main.php của ứng dụng. Cấu trúc như sau:
Trang 24
GVHD: Thầy Nguyễn Lương Anh Tuấn Khóa luận tốt nghiệp
Hình 4.2: Cấu hình application trong file main

 Controller:
Controller của Yii gồm có 2 thành phần cơ bản là Filter và Action.
 Action
Action là các phương thức có tên bắt đầu là action (ví dụ: actionIndex).
Ngoài ra, Yii còn hỗ trợ cách viết các action nâng cao hơn bằng cách tổ chức
các action theo kiểu mô-đun hóa. Ta có thể xem cấu trúc thư mục sau:
Biểu đồ 5.2: Cấu trúc thư mục trong YII “Nguồn: The Denitive Guide”
Trang 25

return array

 !"
#$%"

array
&array'()*+&&,"
,"

,

×