!" #$%&'()!# *+ ,
-
./01.2345637893 7:;<3:37
Gio viên hưng dn:Ngô Văn Công
=>=
?@A?@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$
>B.CDEFG%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%H
,I%JK%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L
I%I%MN1O3EP%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L
I%$%45Q37R4/R7.S.TGUVN%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L
I%W4XC1.@YZEPN[.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\
I%]%45Q37R4/R374.23@^G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\
,$_,+`>ab%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c
$%I%.6.N4.dGe38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c
$%I%I%"fZCeg0fhA[7i%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c
$%I%$%.6.N4.dGjfZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c
$%I%W%X.kZ0@4l37NZ323km8?37jfZCeg0fhn%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c
$%I%]%4o37E.pC@F3A5Gqh4.km8?37IjfZCeg0fhn%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I&
$%I%H%/@A0X.jfZCeg0fhR4rs.V3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%II
$%$%.6.N4.dGC:4i34;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%II
$%$%I%+0k/34C:4i34;16.C:4i34WA6R%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%IW
$%W%e38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I]
$%W%I%.6.N4.dGe38jfZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I]
$%W%I%I%e38"fZCeg0fhA[7in%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I]
$%W%I%$%e38"fZCeg0fhA[CE5t@34o377in%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I]
$%W%I%W%Gh4GUVNE.pC@YZe38"fZCeg0fh_%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I]
$%W%I%]%KG/Nfi34R4/NNf.p3@YZe38"fZCeg0fh_%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%IH
$%W%$%uNkvA6RR4rs.V3Nf037"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%IL
$%W%W%:4i34;Nf037e38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I\
$%W%]%>Gw37xmAq@:371.d@Nf037e38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$&
$%W%H%/@4A[C1.d@1[xyU8z37A6RNf23e38"fZCeg0fhn%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$I
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
2
Gio viên hưng dn:Ngô Văn Công
$%W%{%OGNfl@N45C?@@YZCuNRf0|e@NNf037"}CuNC08GAe~_%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$
$%W%L[.EMN^378?37EFGN.2316.e38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$$
,W_,W%()!•!=# *+ *+*
K%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%I%M@NS4dN4v37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%I%I.6.N4.dG%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%I%$:NS4dN4v37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%I%$%I%.6.N4.dGkS3R4€CA23gesk.Ne%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%I%$%$%4/@44[37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$c
W%$%*S3EM@NSU2G@FG4dN4v37s/3k/@4Nfz@NGUV3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W&
W%$%I%?@N.2G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W&
W%$%I%$%v.N5t37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W&
W%$%I%W%*S37C:NS@4^@3<37@YZ4dN4v37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%WI
W%$%I%]KGUNfi34EMN4[37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W$
W%W4y3N•@44dN4v37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W$
W%W%I+QEwkeZke%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W$
W%]%:4i34TGZ33.dC8oA.dG%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%WH
W%H%+QEw@4^@3<37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%WH
W%{%OG4i34^378?37%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W{
W%L%I%uNkvR45Q37N4^@@QsS3Nf037e38"fZCeg0fh%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W{
W%L%I%I%4D.NX0hVN3v.8ZNZsZke%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W{
W%L%I%$%OG4i34NeCRAZNe%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W\
W%LI%W%.p3N4‚8Z34C?@kS3R4€CN4e0C:4i34EZ@OR%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Wc
W%\%i34S34#esk.Ne%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]$
VNAGƒ3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]\
Z.A.eGN4ZCh4Z0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]c
4ƒ3x„N@YZ./0;.2345637893
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
3
Gio viên hưng dn:Ngô Văn Công
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
4
Gio viên hưng dn:Ngô Văn Công
4ƒ3x„N@YZ./0;.23R4S3s.d3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
5
Gio viên hưng dn:Ngô Văn Công
>B.CDEFG
Ở mọi thời đại ,trong mọi xã hội mỗi công việc đều có những đặc điểm riêng mang tính đặc
thù (nghiệp vụ) của nó . bởi vy m khi lm bất kỳ một việc gì ngưi ta đều xem xét xem công
việc đó thuộc phạm trù no của xã hội , những thông tin những vấn đề gì ảnh hưởng, điều tiết
đến nó.do vy m người ta chia ra thnh hai lĩnh vc rõ rng trong đời sống con người : kinh
tế ,xã hội. Mỗi một lĩnh vc gồm nhiều lĩnh vc mức dưi tổng hợp lên ví dụ kinh tế có: buôn
bn , thương mại đã từ lâu người ta tổ chức nghiên cứu ,đo tạo nguồn nhân lc về từng lĩnh
vc khc nhau da trên khả năng bẩm sinh sẵn có v sở thích để có điều kiện đi sâu nghiên cứu
cũng như thc hiện công việc một cch có hiệu quả , sâu sắc v cũng để tiếp cn vi nhiều vấn
đề mi trong cc lĩnh vc khc nhau .Khả năng chuyên môn nghiệp vụ l một đòi hỏi rất cần
thiết cho những người tham gia vo những công việc có liên quan m không phải cứ người no
khi được đo tạo cũng đủ, nắm vững yêu cầu của công việc chuyên môn.
Thc tế cho thấy con người luôn luôn tìm cch giảm thiểu những khó khăn trở ngại lm
cho công việc thc hiện được d dng v đòi hỏi chuyên môn nghiệp vụ không cao.
Trưc đây khi khoa học công nghệ chưa pht triển người ta cũng được nghiên cứu, tìm cch
tiếp cn r rng hơn vi công việc .Ngy nay khi khoa học nông nghệ pht triển tiên tiến chúng
ta cng có điều kiện thun lợi hơn trong xử lý công việc.
Ta xét riêng việc xử lý bn hng hng ngy của một công ty no đó. khi tin học chưa ra đời
thì việc bn hng v những việc liên quan khc đều thc hiện một cch rất khó khăn vất vả đòi
hỏi vững chuyên môn nghiệp vụ ,tốn nhân lc, không gian, chi phí cho việc thc hiện. ngy
nay tin học pht triển nhu cầu tin học hóa những công việc chuyên môn lặp đi lặp lại l yêu cầu
cấp thiết. tin học hóa sẽ mang lại lợi ích to ln về mọi mặt : nhân công, chi phí ti chính v
thm chí cả trình độ chuyên môn của người thc hiện nó (không đòi hỏi có chuyên môn nghiệp
vụ cao) bởi vì nó chỉ l những thao tc trên my đơn giản. tin học hóa bắt buộc phải có trong
thời đại hiện nay đối vi từng công ty, những cửa hng ln hay thm chí l cả những cửa hng
vừa v nhỏ.tuy nhiên đầu tư để xây dng hệ thống phục vụ công việc tính trong khoảng thời
gian ngắn l tốn kém nhưng xét về lâu di thì lợi ích mang lại l rất to ln ảnh hưởng cả đến
vn mệnh của một công ty. xét về phía người xây dng hệ thống thì đây l vấn đề không thể
giải quyết một cch chọn vẹn bằng một chương trình cho mọi hình thức, nó phụ thuộc vo
chuyên môn nghiệp vụ, yêu cầu thc tế đặt ra, v vì vy rất khó nếu không muốn nói l không
thể thc hiện được một cch tổng qut vấn đề ny. tùy thuộc vo những yêu cầu đặt ra đối vi
từng hon cảnh ta có cch giải quyết khc nhau tạm thời trong khỏang thời gian nhất định đp
ứng được yêu cầu đề ra của hệ thống.
Trong khuôn khổ bi thc tp chuyên nghnh.Da trên mã nguồn trang web Shopping bằng
Zend Framework trong khóa học Zend Framework online được viết bằng Zend framework 1.x
em đã pht triển thnh một d n của riêng mình viết bằng Zend framework 2.0
Em xin cảm ơn cc gio viên trường Đại học Nha Trang đã giảng dạy những kiến thức đại
cương cũng như chuyên nghnh.Em xin cảm ơn gio viên hưng dn Ngô Văn Công đã giúp
em hon thnh đề ti ny
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
6
Gio viên hưng dn:Ngô Văn Công
,I%JK
I%I%MN1O3EP
Kể từ cuối thp niên 80 đầu thp niên 90 công nghệ thông tin pht triển một cch nhanh
chóng về phương diện kỹ thut. điều đó l động lc pht triển cc ứng dụng về mặt kinh tế , xã
hội , văn hóa v quan trọng hơn l nó có ảnh hưởng ln về cả mặt chính trị , ổn định an ninh
chính trị trên ton thế gii. s pht triển mạnh mẽ của công nghệ thông tin có ảnh hưởng rất
ln đến s pht triển của nền kinh tế thế gii nó thâm nhp v có mặt ở mọi mặt của nền kinh
tế thế gii. Đặc biệt l việc buôn bn , trao đổi trên mạng.
Xét một khía cạnh nhỏ trong nền thương mại đó l công việc bn v phân phối sản phẩm
của một công ty hay một cửa hng có tổ chức quy mô ta thấy ngay được vai trò quan trọng của
công nghệ thông tin. nếu như công việc phân phối sản phẩm (bn hng) của công ty được thc
hiện theo phương php thủ công có nghĩa l mọi công việc đều được thc hiện bởi con người
v trên giấy tờ sổ sch dn đến việc tốn kém về mọi mặt : nhân lc, ti chính, trình độ , diện
tích, đòi hỏi nhân viên bn hng phải có trình độ nghiệp vụ điều đó l rất khó khăn. nhưng
quan trọng hơn l nó không mang lại hiệu quả trong kinh doanh thm chí còn xảy ra s nhầm
ln trong công việc gây thất thot trong công ty .
Vi s pht triển v ứng dụng mạnh mẽ của tin học thì tin học hóa cc quy trình nghiệp vụ
nếu có thể mang tính cấp thiết .
Quy trình bn hng của một công ty thuộc hệ thống quản lý kinh doanh của công ty nó giữ
một vai trò đặc biệt quan trọng trong hệ thống. việc bn hng phải được thc hiện một cch
nhanh chóng chính xc v phải tổng hợp thông tin bn hng cp nht cho ton bộ hệ thống giúp
cho cc nghiệp vụ khc trong công việc quản lý kinh doanh của công ty đp ứng thông tin một
cch chính xc kịp thời.
Xây dng hệ thống phải đp ứng được những yêu cầu của người sử dụng thích hợp vi hệ
thống quản lý kinh doanh của công ty. hệ thống phải đp ứng được những yêu cầu chung: xử lý
được lượng thông tin ln một cch chính xc nhanh chóng đp ứng được yêu cầu , lưu trữ , bảo
vệ dữ liệu khoa học thun lợi v an ton giúp cho công việc quản lý được đơn giản đảm bảo kết
quả cao, thay thế được cho hệ thống đang dùng (có nghĩa l nó đp ứng được tốt hơn về mặt xử
lý dữ liệu , xử lý cc yêu cầu tốt hơn , đa dạng hơn , nhanh hơn ). điều đó l yêu cầu tối thiểu
đối vi hệ thống đang xây dng.
Yêu cầu đặt ra trong công tc quản lý bn hng đi đến việc xây dng hệ thống trợ giúp bn
hng cho công ty sao cho phải đp ứng được yêu cầu nghiệp vụ , giao diện thân thiện vi người
sử dụng . mục đích xây dng hệ thống l lm giảm bt mức tối đa những khó khăn trong công
tc quản lý bn hng đp ứng được quy trình xử lý thông tin của hệ thống chính.
I%$%45Q37R4/R7.S.TGUVN
Để xây dng được hệ thống trợ giúp bn hng qua mạng vi độ chính xc v tính thc tế
cao thì yêu cầu cần phải khảo st thông tin của hệ thống phải chi tiết v chính xc dn đến việc
phân tích dữ liệu đầu vo , ra được chính xc . Mô phỏng quy trình bn hng , lưu trữ cc
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
7
Gio viên hưng dn:Ngô Văn Công
thông tin liên quan , thu thp cc mu biểu quan trọng .Trên cơ sở những thông tin được thu
thp được tiến hnh xây dng sơ đồ chức năng nghiệp vụ, sơ đồ dòng dữ liệu mức đỉnh, mức
dưi đỉnh , xây dng mô hình thc thể quan hệ v thiết kế một số modul quan trọng (lưu trữ
,tìm kiếm , xử lý thông tin ).
Thiết kế một số giao diện quan trọng của hệ thống sao cho vừa mang tính nghiệp vụ vừa
phải d sử dụng.
Lp d kiến xây dng cơ sở dữ liệu cho hệ thống phân tích đnh gi được phạm vi lưu trữ,
độ an ton của dữ liệu khi vn hnh, điều ny ảnh hưởng đến ton bộ hệ thống kinh doanh của
công ty.
Kết quả cuối cùng hệ thống phải có tính ưu việt: khả năng xử lý được lượng thông tin ln ,
chính xc ,lưu trữ khoa học thun tiện v an ton hơn hẳn hệ thống cũ . hệ thống tạo ra phải hỗ
trợ ti mức tối đa trong công việc quản lý bn hng của công ty.
I%W4XC1.@YZEPN[.
Về phân tích thiết kế hệ thống:Kết quả thu được của đề ti l mô hình phân tích hệ
thống,cơ sở dữ liệu,… có khả năng xây dng phần cơ sở dữ liệu cho ứng dụng website Bn
hng qua mạng.
Về mặt lp trình :Trên cơ sở nghiên cứu v p dụng Zend Framework 2.0,hon thnh cc
nội dung chủ yếu sau :
+Hiểu v vn dụng thnh công cc lp cở bản của zend framework để xây dng cc
module chủ yếu cho hệ thống: Module sản phẩm, module hệ thống trong d n (dùng để cấu
hình cc phần mặc định như layout,router,model,…).
+Đảm bảo hệ thống vn hnh theo đúng cấu trúc của một ứng dụng Zend
Framework(Theo mô hình MCV).
I%]%45Q37R4/R374.23@^G
Nghiên cứu Zend Framework thông qua cộng đồng Zend Việt Nam://www.zend.vn/forum.
Nghiên cứu dưi s chỉ bảo của gio viên hưng dn thc tp chuyên nghnh.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
8
Gio viên hưng dn:Ngô Văn Công
,$_,+`>ab
$%I%.6.N4.dGe38"fZCeg0fh
$%I%I%"fZCeg0fhA[7i
Framework l một thư viện cc lp đã được xây dng hon chỉnh, l một “bộ khung ” để
pht triển cc phần mềm ứng dụng. Có thể ví Framework như một tp cc “vt liệu” ở từng
lĩnh vc cho người lp trình viên, thay vì họ phải mất thời gian để t thiết kế trưc khi dùng.
Do vy, người lp trình viên chỉ việc tìm hiểu v khai thc cc vt liệu ny rồi tiến hnh gắn
kết (tức lp trình) để tạo ra sản phẩm.
2%I%$%.6.N4.dGjfZCeg0fh
Như đã biết ,PHP l một ngôn ngữ script rất phổ biến hiện nay bởi lý do:linh hoạt,d sử
dung,d học , v…v .Nhưng đôi khi việc viết mã PHP ,hay bất kỳ ngôn ngữ lp trình no
khc,có thể trở nên đơn điệu v lủng củng .Đó l lúc PHP framework có thể giúp bạn.
PHP framework lm cho s pht triển của những ứng dụng web viết bằng ngôn ngữ PHP
trở nên trôi chảy hơn, bằng cch cung cấp một cấu trúc cơ bản để xây dng những ứ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 viết
lại mã cho lp trình viên. Ngoi ra PHP framework còn giúp những người mi bắt đầu có thể
xây dng cc ứng dụng ổn định nhờ việc tương tc chính xc giữa cc database ,mã (PHP) v
giao diện (HTML) một cch riêng biệt.Điều ny cho phép bạn dnh nhiều thời gian để tạo ra
cc ứng dụng web ,hơn l phí thời gian để viết cc đoạn mã lặp lại trong một project.
$%I%W%X.kZ0@4l37NZ323km8?37jfZCeg0fhn
Có rất nhiều loại PHP framework sẵn có hiện nay cho bạn la chọn, thm chí bạn có thể t
tạo ra 1 PHP framework cho riêng mình, tuy nhiên, điều ny chỉ được khuyến khích dnh cho
cc chuyên gia PHP (PHP expert) , những người đã có kiến thức v hiểu biết vững vng
về framework. Khi bạn cần tìm một loại PHP framework phù hợp nhất vi nhu cầu của mình,
đừng quên lưu ý về độ phổ biến của nó, ngoi ra ứng dụng web của bạn được pht triển bởi bao
nhiêu người cũng l 1 điều nên lưu ý. Một PHP framework cng được phổ biến, tức l nó cng
được nhiều người sử dụng v pht triển. Mặt khc, nếu bạn muốn xây dng ứng dụng cho
website của riêng mình, tốt nhất bạn nên chọn 1 PHP framework phù hợp v d sử dụng nhất
đối vi nhu cầu của bạn – không quan trọng nó có được nhiều người sử dụng hay không.
Cc yếu tố bạn nên lưu ý trưc khi muốn tìm kiếm 1 PHP framework để sử dụng bao gồm
như sau: d sử dụng, pht triển nhanh v hiệu quả, phổ biến giữa cc developer, có cc tính
năng mạnh mẽ, có din đn hỗ trợ. Hầu hết cc framework đều có cc điểm yếu v thế mạnh
khc nhau, ví dụ Zend Framework đã được phổ biến từ version 1.3 v có đầy đủ cc tính năng
mạnh mẽ, cộng thêm 1 cộng đồng pht triển hỗ trợ extension rộng ln. Ngược lại, CakePHP lại
l 1 loại PHP framework khc, mi ra đời sau ny, nhưng lại ít có cộng đồng pht triển hỗ trợ
hơn Zend, nhưng nó cũng được nhiều người la chọn vì tính thân thiện vi người dùng v d
sử dụng.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
9
Gio viên hưng dn:Ngô Văn Công
Như bạn có thể thấy, mỗi loại PHP framework đều có lợi thế riêng của nó, thế nên tốt nhất
l bạn nên tìm hiểu kỹ v xi thử để có chọn la đúng đắn cho nhu cầu của mình. Ngoi ra bạn
có thể nhờ những người đã có kinh nghiệm sử dụng tư vấn thêm cho mình, họ sẽ giúp bạn phân
tích cc tính năng cần thiết cho nhu cầu của mình v nên sử dụng loại no.
$%I%]%4o37E.pC@F3A5Gqh4.km8?37IjfZCeg0fhn
Lỗi l điều không thể trnh khỏi trong việc lp trình, nhưng PHP framework sẽ giúp bạn
hạn chế rất nhiều sai sót bằng cch cung cấp cc thư viện mã lệnh chuẩn. Viết lại cc đoạn mã
lặp lại nhiều lần không cần thiết sẽ d dn đến việc pht sinh lỗi, v PHP framework sẽ loại bỏ
vấn đề ny giúp bạn.
Tuy nhiên, bạn vn phải có những chú ý khi sử dụng bất kỳ PHP framework no. Ví dụ,
nếu bạn không phải l 1 chuyên gia lp trình PHP, bạn nên sử dụng 1 loại framework phổ biến,
có 1 cộng đồng hộ trợ rộng ln. Vn có rất nhiều loại framework có ít hoặc không có cộng
đồng hỗ trợ, v cc loại framework ny chủ yếu được viết bởi cc c nhân no đó vi kiến thức
không chuyên sâu.
Một số lỗi phổ biến khc l do bạn không bảo đảm được cấu hình để xuất phiên bản
database v web server tương thích vi framework. Ví dụ, Seagull PHP Framework đề xuất
cấu hình như sau:
+PHP: PHP 4.3.0 is the minimum, later versions work fine, as do versions PHP 5.1.1
and above. Avoid anything in the 5.0.x series
+MySQL: MySQL 4.0.x, 4.1.x and 5.0.x are all supported. You can also use 3.23.x.
Apache: Seagull works fine with 1.3.x and 2.x series of Apache.
Nếu bạn không đp ứng được cc yêu cầu ny, thì framework sẽ không thể hoạt động 1
cch hiệu quả được. Thm chí nếu bạn l 1 chuyên gia PHP, bạn cũng nên xem qua cc ti liệu
hưng dn về cấu hình đề xuất của framework trưc khi muốn sử dụng nó. Ngoi ra việc xem
hưng dn ci đặt của 1 framework sẽ giúp bạn trnh được những lỗi không cần thiết v tiết
kiệm được thời gian để đi vo pht triển ứng dụng của mình cho những lần sau.
$%I%H%/@A0X.jfZCeg0fhR4rs.V3
Zend Framework có 1 cộng đồng pht triển rộng ln, v nó tp trung vo cc ứng dụng
web theo phong cch 2.0. Vì được phổ biến rộng rãi, v có 1 cộng đồng người dùng tích cưc,
Zend được gọi l “Công ty PHP”. Zend l 1 trong những framework phổ biến nhất hiện nay.
Nó có cc tính năng mạnh mẽ, thường được sử dụng cho cc công ty ln, v bạn cần phải có
lượng kiến thức kh sâu rộng về PHP để có thể sử dụng được nó.
CakePHP l 1 la chọn tuyệt vi cho những lp trình viên có kiến thức nâng cao về PHP.
Nó da trên cùng 1 nguyên tắc thiết kế vi Ruby on Rails, l 1 framework mạnh về khía cạnh
rapid development , giúp lp trình viên đẩy nhanh qu trình pht triển ứng dụng của họ. Vi
cc hệ thống hỗ trợ, tính đơn giản v mỗi trường mở cao đã giúp cho CakePHP trở thnh 1
trong nhữngframework phổ biến nhất hiện nay.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
10
Gio viên hưng dn:Ngô Văn Công
Symfony được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những lp trình viên muốn
tạo ra cc ứng dụng website doanh nghiệp. Đây l 1 PHP framework mã nguồn mở vi đầy đủ
cc tính năng cần thiết. nhưng nó có vẻ chạy chm hơn cc framework khc.
Codelgniter được biết đến như 1 framework d hiểu v d sử dụng, cho hiệu suất cao.
Không giống như Symfony, PHP framework ny phục vụ mục đích lý tưởng cho việc xây dưng
cc ứng dụng chia sẻ , lưu trữ. Nó cung cấp cc giải php đơn giản, v có một thư viện video
hưng dn phong phú, din đn hỗ trợ, v cung cấp sẵn 1 hưng dn sử dụng cho người mi
bắt đầu. PHP framework ny rất phù hợp cho 1 người mi lm quen vi framework.
Seagull cũng l 1 PHP framework tốt phục vụ cho việc xây dưng website v cc GUI. Nó
l 1 framework cc kỳ d sử dụng cho cả những người mi mi lm quen vi lp trình PHP
đến những chuyên gia trong lp trình PHP. Vi những người mi lm quen vi lp trình PHP,
Seagull cung cấp 1 thư viện cc mu ứng dụng có thể được tùy chỉnh để phù hợp vi nhu cầu
của bạn. Đối vi cc chuyên gia PHP, Seagull cung cấp cc tùy chọn my chủ, bao gồm cc
phương php hay nhất, tiêu chuẩn, v modular codebase – giúp cc lp trình viên xây dng cc
ứng dụng web một cch nhanh chóng v d dng. Seagull có một cộng đồng pht triển rộng ln
v nhiều ti liệu hưng dn hỗ trợ.
Tóm lại:
PHP framework l 1 giải php tuyệt vời cho cc lp trình viên pht triển cc kỹ năng như:
giảm thiểu việc viết lại mã, tăng tốc qu trình pht triển ứng dụng, v chuẩn hóa mã lệnh khi
xây dng cc ứng dụng web. Không chỉ giúp cc bạn cải thiện tốc độ pht triển ứng dụng, nó
còn giúp bạn giảm thiểu cc lỗ hổng bảo mt 1 cch triệt để. PHP framework phù hợp cho cả
những người mi lm quen hay những bạn đã có kiến thức vững về PHP.
Ngy nay, có rất nhiều PHP framework được cung cấp, v vì vy chắc chắn cc bạn có thể
tìm ra một framework có cc tính năng phù hợp vi nhu cầu của mình hỗ trợ, tốc độ, quy mô
v nhiều hơn nữa. Một số PHP framework phổ biến nhất hiện ny bao gồm: Zend Framework,
CakePHP, Symfony, Codelgniter, v Seagull.
$%$%.6.N4.dGC:4i34;
Ý tưởng chung đằng sau cch thức lm việc của 1 PHP framework được kể đến l Model
View Controller (MVC). MVC l 1 mô hình (kiến trúc) trong lp trình, cho phép tch biệt cc
mã nghiệp vụ (business logic) v giao diện (UI) thnh cc phần riêng biệt, điều ny đồng nghĩa
vi việc ta có thể chỉnh sửa chúng 1 cch riêng lẻ. Trong cụm từ MVC thì:
+Model (M) có thể hiểu l phần xử lý cc thao tc về nghiệp vụ(business logic).
+View được hiểu l phần xử lý lp giao diện (presentation layer).
+Controller lm nhiệm vụ lọc cc request đc gọi từ user, có chức năng như 1 route: điều
chỉnh, phân luồng cc yêu cầu để gọi đúng Model&View thích hợp.
Về cơ bản,MVC chia nhỏ qu trình xử lý của 1 ứng dụng, vì thế nên bạn có thể lm việc
trên từng thnh phần riêng lẻ, trong khi những thnh phần khc sẽ không bị ảnh hưởng ti.
Thc chất, điều ny giúp đỡ bạn lp trình PHP nhanh hơn v ít phức tạp hơn.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
11
Gio viên hưng dn:Ngô Văn Công
Mô hình MVC đơn giản
Sơ đồ 1 chuỗi MVC đơn giản
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
12
Gio viên hưng dn:Ngô Văn Công
Sau cùng l 1 cch phức tạp hơn để hiểu về mô hình MVC
$%$%I%+0k/34C:4i34;16.C:4i34WA6R
Điểm giống nhau:
+Cả hai đều l mô hình kiến trúc p dụng trong lp trình được tch thnh 3 thnh phần.
+Tch biệt s phụ thuộc giữa ngôn ngữ lp trình, môi trường pht triển, xử lý logic.
+Cc thnh phần ở mỗi mô hình có nhiều điểm tương đồng như Presentation Layer v
View
Điểm khc biệt:
+Khc biệt rõ nhất l cch xử lý yêu cầu (workflow) của 2 mô hình.Ở MVC, thnh phần
Model giữ chức năng của cả lp Business v Data Access trong mô hình 3 lp.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
13
Gio viên hưng dn:Ngô Văn Công
+Mô hình 3 lp thường được sử dụng trong lp trình ứng dụng, trong khi đó MVC được ưu
chuộng nhiều trong lp trình website vì tính linh hoạt v không bắt buộc cc DTO như 3 lp
$%W%e38"fZCeg0fh
$%W%I%.6.N4.dGe38jfZCeg0fh
$%W%I%I%e38"fZCeg0fhA[7in
Zend Framework l sản phẩm framework mã nguồn mở được pht triển trên nền PHP 5.0
theo chuẩn hưng đối tượng.
Zend Framwork l framework theo mô hình MVC.
Zend Framework có hỗ trợ lm việc vi Tempalate engine kết hợp cùng tầng View
$%W%I%$%e38"fZCeg0fhA[CE5t@34o377in
+ 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 ti từng Action .
+Có cc thnh phần thư viên hỗ trợ API của cc nh cung cấp như Google, Yahoo, Flick .
+Quản lý code d dng, liệt kê v lấy cc truy vấn history .
+D dng pht triển thêm cc ứng dụng nhúng, sử dụng Plugins.
$%W%I%W%Gh4GUVNE.pC@YZe38"fZCeg0fh_
ZF l một PHP framework ra đời kh tr, tiếp thu những tinh hoa v khắc phục những sai
lầm m cc framework trưc mắc phải.
Ưu điểm:
+ZF được viết theo kiểu OOP nên nó thừa hưởng cc thế mạnh của kiểu viết ny. Cc lp
của.
+ZF được BA (Business Analysis) rất chuẩn v khi cần mở rộng bạn có thể dùng thể
dùng tính chất thừa kế của OOP. Nói chung l chúng ta không phải chỉnh sửa core của ZF.
Hầu như cc version mi của ZF ko có nhiều thay đổi trong core nên ta có thể d dng
update.
+ZF tích hợp được gần như tất cả cc thư viện PHP v cc CMS khc để sử dụng. VD:
Smarty , Pear , FCKEditer , Drupal
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
14
Gio viên hưng dn:Ngô Văn Công
+Cch viết của ZF rất thân thiện v đơn giản. Tích hợp những mi nhất của lp trình web
như: JSON - Search - Syndication - Web Services
+ZF được sử dụng trong cc d n ln v có kế hoạch pht triển di lâu
Khuyết điểm:
+Mất nhiều thời gian để tìm hiểu về thư viện của ZF
+Một số lp chưa ổn định, có s thay đổi, gây khó khăn cho người sử dụng khi cp nht
cc phiên bản.
$%W%I%]%KG/Nfi34R4/NNf.p3@YZe38"fZCeg0fh_
Cc phiên bản đã pht hnh:
+Zend Framework 1.11, Zend Framework 1.10, Zend Framework 1.9, Zend Framework
1.8, Zend Framework 1.7, Zend Framework 1.6, Zend Framework 1.5, Zend Framework 1.0,
Zend Framework 0.9, Zend Framework 0.8, Zend Framework 0.6.
+ Zend Framework 2.0
Chúng ta điểm lại đôi chút về lịch sử của ZF:
•2005 trong cuộc hội thảo PHP. Zend đã đưa ra ý tưởng về bộ framework ny
• Thng 3 năm 2006: Phiên bản v0.1 mở đầu: Chẳng có gì nhiều từ bản ny ngoi vi lib hỗ trợ
code v tính ton nhanh
• Thng 7 năm 2007: Phiên bản v 1.0 chính thức ra đời. Tht tuyệt vời khi đã có mô hình chuẩn
hóa M-V-C vi kh nhiều partern trong đó
• Thng 3 năm 2008: Phiên bản v1.5 Một bưc đột ph trong cc thnh phần hiển thị Form,
Layout, Context. Từ đây chúng ta có multi-layout (multi-template)
• Thng 4 năm 2009: Phiên bản v1.8 Đây đã được coi l một phiên bản ổn định nhất từ trưc
ti nay. S ra đời của: Application, Tool, Nav đã giúp chúng ta d dng sử dụng v hạn chế
code đầu vo như trưc.
• Thng 10 năm 2010: Phiên bản v1.11: V chúng ta có thể coi đây l phiên bản gần như l
cuối cùng của ZF 1.0.
• Vo ngy 25-07-2012. ZF team đã cho công bố về Zend Framework 2.0 phiên bản chính thức
Chúng ta đã có gì trong ngy hôm nay?
•Một bộ core Zend Framework lm việc ổn định vi nhiều thnh phần , cc component,
adapter, plugin được thêm vo. Giúp chúng ta có thể thc hiện mọi d n từ rất nhỏ đến rất ln.
•Ti giờ ZF trở nên rất phổ biến trong v ngoi gii lp trình PHP
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
15
Gio viên hưng dn:Ngô Văn Công
•Có cộng đồng hỗ trợ ln.
Vy đã tốt thế thì còn vấn đề gì tồn động trong ZF 1.x? Theo Rob Allen - Một thnh viên
của nhóm pht triển ZF v cũng l người viết quyển sch Zend Framework In Action trong
cuộc hội thảo ZF 2011 đã đưa ra nhn định:
•Khó học đối vi bất kỳ một Coder/Developer no.
•Hiệu suất xử lý còn gặp hạn chế. (Lý do? ở dưi)
•Qu nhiều cc lp "magic"
•Còn nhiều ci không thống nhất trong cc thnh phần.
Ci gì mi trong ZF 2.0?
•Có một ti liệu tốt hơn
•Gắn kết cc hưng dn, tutorial lại để giúp người dùng d học .Ti liệu tham khảo v
hưng dn sử dụng chi tiết kèm theo cc ví dụ cụ thể.
Cc địa chỉ API được thống nhất
Hỗ trợ cc ngôn ngữ khc để mọi người trên ton cầu có thể đọc bằng bản ngữ. (Bc no
VN pro tiếng anh v có khả năng có thể đăng ký translate ti liệu)
D dng mở rộng
•Xóa bỏ Singletons partern. Điều ny sẽ giúp việc mở rộng được d dng hơn.
•Loại bỏ cc hard-coded bị trùng lặp
Nâng cấp hiệu suất xử lý
•Tăng tốc độ xử lý trên 200% so vi ZF1
•Cc công cụ giúp deploy cũng như cc tùy chọn để d dng xử lý khi chuyển đổi hệ
thống từ server ny sang server khc
Đơn giản hóa
•Tp trung vo cc thnh phần cốt lõi
•Code d dng đọc hơn
•Có cc API phù hợp hơn
•Hỗ trợ PHP 5.3 vi NameSpace
Hiện tại vấn đề Autoload vn đang được thảo lun
La chọn 1: Có namespace rõ rng, Không sử dụng include_path.Vi la chọn ny thì
người code vn code bình thường v thay vì dùng include_path thì chúng ta dùng namespace.
La chọn ny giúp chúng ta tăng khoảng 40% hiệu suất xử lý.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
16
Gio viên hưng dn:Ngô Văn Công
La chọn 2: Sử dụng 1 lp - ClassMap nó sẽ l bản đồ mapping. Chỉ dn cho hệ thống
load cc file cần thiết thay vì autoload all như hiện nay
Vi s la chọn ny thì người code khi deploy sẽ phải viết file mapping ny. V tht khó
xử lý khi có một hệ thống ln.uy nhiên la chọn ny cho phép chúng ta tăng khoảng 150%
hiệu suất.
Chúng ta sẽ có thêm một thnh phần mi đó l Plugin Autoload.Nó sẽ giúp chúng ta
mapping cc Plugin v load t động khi no được gọi. Vi việc đó nó sẽ giúp chúng ta tăng
thêm hiệu suất khoảng trên 50%
Hệ thống xử lý lỗi mi.
Mô hình MVC .
Controller, dispatcher, hook points.
View.
Model vn chưa có gì thay đổi.
Vi mô hình MVC mở rộng mi ny sẽ giúp chúng ta thoải mi trong việc sử dụng view
thông qua cc hook points.V tăng hiệu suất thông qua cc dispatcher mi.
$%W%$%uNkvA6RR4rs.V3Nf037"
•Zend_Db: Da trên đối tuợng PDO (PHP Data Objects), cung cấp cch thức giao tiếp vi
database.
•Zend_Controller: giúp lấy cc request từ phía Client v thc thi nó bằng cc Action.
•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 ngoi.
•Zend_Auth: cung cấp một API cho việc chứng thc ti khoản khi đăng nhp vo hệ thống.
•Zend_Cache: giúp cho cc ứng dụng không phải sử dụng CPU hoặc truy xuất vo database
qu nhiều.
•Zend_Currency: xử lý tất cả cc vấn đề liên quan đến tiền tệ
Zend_Date: xử lý tất cả cc vấn đề liên quan thời gian.
•Zend_Feed: xử lý vi Rss v Atom feeds .
•Zend_File: cung cấp, hỗ trợ mở rộng việc upload v download của cc tp tin. Nó gắn liền
vi kiểm tra cc chức năng của tp tin.
•Zend_Filters: lọc dữ liệu trưc khi thc hiện một qu trình xử lý no đó .
•Zend_Form: đơn giản hóa việc tạo form v xử lý cc ứng dụng trên website.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
17
Gio viên hưng dn:Ngô Văn Công
•Zend_Local: l một thư viện trả lời cho câu hỏi lm sao ứng dụng c1o thể sử dụng trên ton
thế gii .
•Zend_Pdf: Tạo v xử lý cc file PDF .
•Zend_Search: l một lp cung cấp cho chúng ta cc phương thức search trên nội dung của
cc tp tin lưu trữ thông tin.
•Zend_Translate: l giải php cho cc ứng dụng đa ngôn ngữ .
•Zend_Validate: dùng để kiểm tra dữ liệu nhp vo có phù hợp vi yêu cầu hay không .
•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.
$%W%W%:4i34;Nf037e38"fZCeg0fh_
Bất cứ một ứng dụng no được xây dng theo mô hình MVC no thì cũng điều phải tuân
thủ những nguyên tắc m mô hình MVC mang lại.
Model : Cung cấp tp hợp cc lp được trừu tượng hóa sử dụng cho việc truy xuất dữ liệu.
Lp phục vụ: Zend_DB, Zend_DB_Table .
View : Định nghĩa cc thông tin hiển thị phía người dụng sau khi được xử lý v trả về từ
controller. Lp phục vụ: Zend_View .
Controller : Kiểm sot dữ liệu vo ra. Xuất thông tin ra tầng View khi được thc thi. Lp
phục vụ: Zend_Controller.
Hình 2.3.2.1: Mô hình MVC trong Zend Framework .
Khi có một request từ người dùng. Controller sẽ tiếp nhn request, phân tích request, sau đó
sẽ phân luồng request để gọi đến Model v View tùy vo 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 nhn request đó đầu tiên l
controller. Tùy vo request, m controller sẽ phân luồng đến model v view.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
18
Gio viên hưng dn:Ngô Văn Công
Ngoi ra, mô hình MVC trong ZF còn có thể được tổng qut hóa bằng mô hình sau:
Hình 2.3.1.2: Mô hình MVC trong Zend Framework
Tóm lại, một ứng dụng được xây dng theo mô hình MVC hoạt động tổng qut như sau:
Tiếp nhn request từ trình duyệt dưi dạng HTML. Sau đó được biên dịch thông qua Java
Servlet → controller tiếp nhn, phân tích request để phân luồng đến model v view. Cuối cùng
trả về trình duyệt dưi dạng một response HTML.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
19
Gio viên hưng dn:Ngô Văn Công
$%W%]%>Gw37xmAq@:371.d@Nf037e38"fZCeg0fh
Hình 2.3.4.1: Quy trình lm việc trong Zend Framework.
Giải thích quy trình:
•Bưc 1: Một yêu cầu được tạo ra v đối tượng Request Object được tạo ra .
•Bưc 2: routeStartup được nạp .
•Bưc 3: Router xử lý yêu cầu .
•Bưc 4: routerShutdown được nạp .
•Bưc 5: dispatchLoopStartup được nạp .
•Bưc 6: Qui trình gửi thông tin được bắt đầu .
•Bưc 7: preDispatch được nạp .
•Bưc 8: Dispathcher gọi Action Controller .
•Bưc 9: Action Controller tạo Response Object .
•Bưc 10: postDispatch được nạp .
•Bưc 11: Nếu có Action no được gọi thì quay lại bưc 7 .
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
20
Gio viên hưng dn:Ngô Văn Công
•Bưc 12: dispatchLoopShutdown được nạp .
•Bưc 13: Response được gửi lại.
$%W%H%/@4A[C1.d@1[xyU8z37A6RNf23e38"fZCeg0fhn
a. Cc lp được phân cấp theo tên thư mục:
Trên thc tế, Zend Framework da vo thư viện để đọc v lm việc trên cc lp một cch
rất cụ thể. Bởi đường dn chi tiết của chúng đã được thể hiện rõ nét ngay trên tên của chúng .
Ví dụ:
Vi class Zend_Db_Table ta có thư mục Zend/Db/Table.php.
Vi class Zend_Application_Bootstrap_Bootstrapper ta có thư mục
library/Zend/Application/Bootstrap/Bootstrapper.php .
b. Controller thể hiện trên URL:
http://localhost/zfdemo/admin/: Tìm ti indexAction trong adminController để thc thi .
http://localhost/zfdemo/admin/login: Tìm ti loginAction trong controller adminController
để thc thi .
Tìm ti vewsAction trong controller newsController v
get id=15 để thc thi.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
21
Gio viên hưng dn:Ngô Văn Công
$%W%{%OGNfl@N45C?@@YZCuNRf0|e@NNf037"}CuNC08GAe~_
Đối vi mỗi project được xây dng trong ZF đều có cấu trúc thư mục của một project tương t
như sau:
$%W%{%I%Cấu trúc thư mục của một project trong ZF
$%W%L%[.EMN^378?37EFGN.2316.e38"fZCeg0fh.
PHP yêu cầu trong hệ thống l từ 5.3.3 trở lên. Để chạy tốt, tôi khuyến co sử dụng xampp
phiên bản 1.7.4 (tương đương PHP 5.3.5).
Đầu tiên, bạn cần chuẩn bị bộ source gốc của Zend Framework 2.0.
Bạn có thể truy cp v download theo đường link ny:
.
Khi giải nén bạn sẽ thấy cấu trúc như hình bên dưi:
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
22
Gio viên hưng dn:Ngô Văn Công
Hình 2.3.7.1:Cấu trúc một d n Zend Framework 2.0
Kế ti, bạn cần download phiên bản zend framework 2.0 tại đây:
/>Sau đó giải nén v copy thư mục library vo th mục vendor/ZF2 của chúng ta theo cấu
hình ở trên.
+ Thư mục config: Chưa cc file config chính cho hệ thống.
+ Thư mục data: Dùng để chứa dữ liệu v cc file cache nếu chúng ta có dùng cache.
+ Thư mục vendor: L thư mục dùng để chứa thư viện zend framework 2.0. Thư viện được
chứa theo đường dn sau: vendor/ZF2/library/Zend.
+ Thư mục Module: L thư mục dùng để chứa cc module của ứng dụng.
+ Thư mục Public: L thư mục chứa cc thông tin như css, js, images. Đồng thời chứa file
index.php chính v .htaccess
Trong thư mục public đã có sẵn thư mục js, css, images v file index.php, .htaccess. Đồng
thời trong thư mục config cũng đã có sẵn file tên: application.config.php.
Đây l file chứa thông tin cấu hình như khai bo module như khai bo module có trong hệ
thống, khai bo thư viện vendor, cache,….
Kế ti chúng ta xem thư mục module có gì. Thư mục module hiện tại sẽ có thư mục
Application. Đây l module mặc định của hệ thống. Khi chạy ứng dụng ta sẽ có kết quả như
sau:
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
23
Gio viên hưng dn:Ngô Văn Công
Hình 2.3.7.2:Module mặc định hệ thống
Chạy ứng dụng đầu tiên vi zend Framework 2.0:
Tại thư mục module tạo thư mục Home theo cấu trúc sau:
Module/
/Home
/config
/view
/home
/home
/src
/Home
/Controller
/Model
/Form
Như bạn thấy đấy, ở Zend Framework 2.0. Ứng dụng được quản lý bằng một cơ chế
module riêng biệt. Cụ thể l module manager. Khi đó, cc ứng dụng sẽ được tch riêng biệt. V
chúng ta sẽ cấu hình từng module một chứ không gộp chung cấu hình tất cả module giống
vi Zend Framework 1.12. Vì thế, ở đây chúng ta phải tp lm quen vi kiến trúc mi ny.
Cụ thể:Một module sẽ bao gồm 3 thư mục chính l config, view, src.
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
24
Gio viên hưng dn:Ngô Văn Công
•Config: chứa file cấu hình của module.
•View: Chưa cc file view của module.
•Src: Chứa cc thnh phần controller, model v form của module.
Tiếp tục ta tạo file Module.php trong module home. Vi nội dung sau:
<?php
namespace Home;
class Module
{
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}
Mục đích của file ny l để định nghĩa 2 phương thức getAutoloaderConfig() v
getConfig().
File module.php ny được xem như một module manager. Nó sẽ giúp hệ thống t động gọi
2 phương thức trên.
Ở Phương thức getAutoloaderConfig() chúng ta cấu hình cho cơ chế autoloading hiểu hệ
thống khi load d trên cơ chế NameSpace của PHP 5.3.
Phương thức getconfig() cho phép nạp nội dung module.config.php. Đây l file chứa thông
tin cấu hình chính của module. Ví dụ như: Khai bo để hệ thống hiểu module, kết nối,…
Tạo tiếp file autoload_classmap.php vi nội dung:
<?php
return array(
Sinh viên thc tp:Nguyn Hoi Nam MSSV:51130954
25