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

bài giảng lập trình php nâng cao zend framework

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 (391.06 KB, 20 trang )








TRUNG TÂ M TIN HỌC
ĐẠI HỌC KHOA HỌC TỰ NHIÊN-TP.HCM
LẬP TRÌNH PHP NÂNG CAO
LẬP

TRÌNH

PHP

NÂNG

CAO
ZEND FRAMEWORK 2
ZEND

FRAMEWORK

2
1








TRUNG TÂ M TIN HỌC
ĐẠI HỌC KHOA HỌC TỰ NHIÊN-TP.HCM
Bài 1: Tổng quan Zend
Framework 2 (ZF2)
1. Giới thiệu ZF
2.
Lý do chọnZF
2.


do

chọn

ZF
3. Giới thiệu ZF2
4. Zend MVC
5
Cài đặtvàcấu hình ZF2
5
.
Cài

đặt



cấu


hình

ZF2
2







Bài 1: Tổng quan ZF2
11
Giớithiệ ZFGiớithiệ ZF
11
. .
Giới

thiệ
u
ZFGiới

thiệ
u
ZF

Zend Framework là một PHP Framework đuợclậptrình

Zend


Framework



một

PHP

Framework

đuợc

lập

trình

bằng ngôn ngữ PHP và dựa trên mô hình MVC, giúp
tách các thành
p
hần xử l
ý
ra một cách rõ ràn
g
cho
p ý g
website của bạn, giúp cho code được dễ dàng quản lý,
chỉnh sửa và nâng cấp.

Sử dụng PHP 5

– Viết huớng đối tuợng
– Cung cấp mô hình tiên tiến MVC
– Là 1 phần mềm nguồn mở có sự hỗ trợ cộng đồng
– Cung cấp 1 loạt các ứng dụng API của các nhà cung
cấp hàng đầu như Google, Yahoo, Flick
3







Bài 1: Tổng quan ZF2
Sử d ZF đểSử d ZF để
Sử

d
ụng
ZF

để

Sử

d
ụng
ZF

để


Tạo ứng dụng web theo mô hình chuẩnMVC

Tạo

ứng

dụng

web

theo



hình

chuẩn

MVC
– Url tiêu chuẩn, ngắn gọn
ỗ ề

H

trợ phân quy

n tới từng Action

Có các thành

p
hần thư viên hỗ tr

API của
p ợ
các nhà cung cấp như Google, Yahoo, Flick

Quản lý code dễ dàng, liệtkêvàlấy các truy
Quản



code

dễ

dàng,

liệt





lấy

các

truy


vấn history
Dễ dàng phát triển thêm các ứng dụng nhúng

Dễ

dàng

phát

triển

thêm

các

ứng

dụng

nhúng
,
sử dụng Plugins
4








Bài 1: Tổng quan ZF2
2Lýd h ZF2Lýd h ZF
2
.


d
o c
h
ọn
ZF2
.


d
o c
h
ọn
ZF

Có rất nhiềuthư viện đượchỗ trợ sẵn



rất

nhiều

thư


viện

được

hỗ

trợ

sẵn
– 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
).
triển

ngôn

ngữ

PHP

phát

triển

(
www.zend.com
).
– được xây dựng trên nền tảng lập trình hướng đối



n
g
nên có thể thừa kế
,
nân
g
cấ
p
các ứn
g
d

n
g

ợ g ,gp g ụ g
một cách dễ dàng.
– 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ếncấuhìnhứng dụng theo ý muốn
tùy


biến

cấu

hình

ứng

dụng

theo

ý

muốn
.
5







Bài 1: Tổng quan ZF2
2Lýd h ZF2Lýd h ZF
2
.



d
o c
h
ọn
ZF2
.


d
o c
h
ọn
ZF

Tích hợpcácthư viện các thành phần khác mộtcách

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.

Có tài liệu để tham khảo


tài

liệu

để

tham

khảo
– Cộng đồng người sử dụng Zend Framework lớn.

Những ứng dụng lớnhiện nay đãdần chuyển qua
Những

ứng

dụng


lớn

hiện

nay

đã

dần

chuyển

qua

dùng Zend Framework làm nền tảng.

Nhu cầu tu
y
ển d

n
g
l
ập
trình viên biết Zend
y ụ g ập
Framework lớn

Bảo mật của các ứn

g
dụn
g
rất tốt nên tránh được các
g g
lỗi thường gặp trong các ứng dụng viết bằng PHP
thường.
6







Bài 1: Tổng quan ZF2
3Giớithiệ ZF23Giớithiệ ZF2
3
.
Giới

thiệ
u
ZF23
.
Giới

thiệ
u
ZF2

Zend Framework 2 là một framwork mã

Zend

Framework

2



một

framwork



nguồn mở dùng cho việc phát triển các ứng
dụng web sử dụng PHP 5 3 x zend
dụng

web

sử

dụng

PHP

5
.

3
.
x
.
zend

Framework được xây dựng hoàn toàn theo
hướng đốitượng OOP và sử dụng hầuhết
hướng

đối

tượng

OOP



sử

dụng

hầu

hết

các đặc điểm mới của PHP 5.3 như
namespaces late static binding phương thức
namespaces
,

late

static

binding
,
phương

thức

lambda và closures.
Z d F k 2 hát t iể từ Zd

Z
en
d

F
ramewor
k

2
p
hát

t
r
iể
n
từ


Z
en
d

Framework 1, một framework PHP rất thành
ô ớih 15 t iệ l ttải ề
c
ô
ng v
ới

h
ơn
15

t
r
iệ
u
l
ượ
t

tải
v

.
7








Bài 1: Tổng quan ZF2
Đặ điể ZF2Đặ điể ZF2
Đặ
c
điể
m
ZF2Đặ
c
điể
m
ZF2

Cấutrúcmới:

Cấu

trúc

mới:
– Theo mô hình MVC, sử dụng Di, Events, Service,
Module
Module
 Cải tiến về chức năng


Sử dụngPHP533
Sử

dụng

PHP

5
.
3
.
3
 PSR – 2 compliant (hỗ trợ pyrus, composer)

Hệ thống đóng gói
Hệ

thống

đóng

gói
 ZF được viết theo kiểu OOP nên nó thừa hưởng các thế
mạnh củakiểuviết này. Các lớpcủaZFđượcBA
mạnh

của

kiểu


viết

này.

Các

lớp

của

ZF

được

BA

(Business Analysis) rất chuẩn và khi cần mở rộng ta có
thể dùng thể dùng tính chất thừa kế của OOP. Nói
chung là ta không phải chỉnh sửa core của ZF.
8







Bài 1: Tổng quan ZF2
Đặ điể ZF2Đặ điể ZF2
Đặ

c
điể
m
ZF2Đặ
c
điể
m
ZF2

Hầunhư các version mớicủa ZF không có nhiều thay

Hầu

như

các

version

mới

của

ZF

không



nhiều


thay

đổi trong core nên ta có thể dễ dàng update.

ZF tích hợp đượcgầnnhư tấtcả các thư việnPHPvà
ZF

tích

hợp

được

gần

như

tất

cả

các

thư

viện

PHP




các CMS khác để sử dụng. VD: Smarty - Pear -
FCKEditor - Drupal …
 Cách viết của ZF rất thân thiện và đơn giản. Tích hợp
những mới nhất của lập trình web như: JSON - Search -
Sditi
WbS i
S
yn
di
ca
ti
on -
W
e
b

S
erv
i
ces
 ZF được sử dụng trong các dự án lớn và có kế hoạch
phát triển dài lâu
phát

triển

dài


lâu
9







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

KiếntrúcMVCcủa ZF2

Kiến

trúc


MVC

của

ZF2
10







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC


Zend
\
Mvc là một nhánh thựchiệnMVCmới

Zend
\
Mvc



một

nhánh

thực

hiện

MVC

mới

được thiết kế cho ZF2, tập trung vào hiệu suất
và tính linh hoạt


tính

linh


hoạt
.
 MVC layer được xây dựng ở phía trên của các
thà h hầ
thà
n
h
p
hầ
n sau:
– Zend\ServiceManager – ZF2 cung cấp một bộ các
định nghĩadịch mặc định đợcthiếtlập ở
định

nghĩa

dịch
vụ
mặc

định

đ
ư
ợc

thiết

lập




Zend\Mvc\Service. ServiceManager tạo và cấu hình
instance và workflow trong ứng dụng
instance



workflow

trong

ứng

dụng
.
11







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en

d

MVC4
.
Z
en
d

MVC

Zend
\
EventManager

MVC là một event driven

Zend
\
EventManager


MVC



một

event

driven

.
Thành phần này được sử dụng mọi nơi từ khởi tạo
ban đầu của ứn
g
dụn
g
, thôn
g

q
ua việc
g
ọi trả về của
g ggq g
response và request, để thiết lập và nhận các định
tuyến và các định tuyến phù hợp (tương ứng), cũng
h dái
n
h
ư ren
d
er c
á
c v
i
ew.
– Zend\Http – đặc biệt là các đối tượng request và
response đượcsử dụng trong:
response
,

được

sử

dụng

trong:
– Zend\Stdlib\DispatchableInterface. Tất cả các

controller

đơngiảnlàđốitượng dispatchable
controller

đơn

giản



đối

tượng

dispatchable
.
12








Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Trong MVC layer có mộtsố thành phầncon

Trong

MVC

layer
,



một

số

thành

phần

con

được giới thiệu:
Zend
\
Mvc
\
Router ch
ứacáclớp liên quan đến định

Zend
\
Mvc
\
Router

ch
ứa

các

lớp


liên

quan

đến

định

tuyến một request. Nói cách khác, nó nối các request
tới các controller tương ứng củanó(hoặc
tới

các

controller

tương

ứng

của



(hoặc

dispatchable).

Zend

\
Htt
p
\
Ph
p
Environment cun
g
cấ
p
m

t b


p
pgp ộ ộ
decorator cho các đối tượng HTTP Request và
Response nhằm đảm bảo là các request được đưa
à
ôi t ờ hiệ t i(b ồ á
v
à
o m
ôi

t


ng

hiệ
n
t

i

(b
ao g

m c
á
c query
parameter, POST parameter, HTTP header )
13







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4

.
Z
en
d

MVC

Zend
\
Mvc
\
Controller mộtbộ các lớp

controller

tr
ừu

Zend
\
Mvc
\
Controller
,
một

bộ

các


lớp

controller

tr
ừu

tượng với các trách nhiệm cơ bản như hệ thống các
event, action
g
ửi đi…
g
– Zend\Mvc\Service cung một bộ các yếu tố và định
nghĩa ServiceManager workflow của ứng dụng mặc
định.
– Zend\Mvc\View cung cấp các thông số mặc định cho
dltiđộ hâ iảii itđă ký
ren
d
erer se
l
ec
ti
on,
độ
p

n g
iải
v

i
ew scr
i
p
t
,
đă
ng


helper…; ngoài ra, nó cung cấp các listener liên lạc
với MVC workflow cung cấpcáctínhnăng như phân
với

MVC

workflow
,
cung

cấp

các

tính

năng

như


phân

giải tên template tự động, tạo view model tự động
14







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Gateway củaMVClàđốitượng

Gateway


của

MVC



đối

tượng

Zend\Mvc\Application (gọi tắt là “Application”).
Nhiệ hí h ủ “A li ti ” là khởit á

Nhiệ
m vụ c

n
h
c

a
“A
pp
li
ca
ti
on





khởi

t
ạo c
á
c
tài nguyên, định tuyến request, nhận và gửi
tll hùh táátìhđị h
con
t
ro
ll
er p


h
ợp
t
rong c
á
c qu
á

t
r
ì
n
h


đị
n
h

tuyến. Sau khi hoàn thành, nó sẽ render view,
hà thàh á ttả ề à ửi
h
o
à
n
thà
n
h
c
á
c reques
t
,
t
r

v

v
à
g
ửi
response.
15








Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Cấutrúcứng dụng cơ bản:

Cấu

trúc

ứng


dụng



bản:
16







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC


Cấutrúcứng dụng cơ bản:

Cấu

trúc

ứng

dụng



bản:
– Tập tin public/index.php: gồm tất cả các yêu cầu
(request) củangười dùng đến website nhậnmột
(request)

của

người

dùng

đến

website
,
nhận

một


mảng các cấu hình đặt tại tập tin
confi
g
/a
pp
lication.confi
g
.
p
h
p,
khi trả về nó
gọ
i
gpp gpp, gọ
phương thức run() của “Application”, xử lý yêu cầu và
gửi lại phản hồi cho người dùng.


Thư mục config chứa c

u hình được sử dụng bởi
Zend\ModuleManager để tải các module và cấu hình
hợpnhất
hợp

nhất
.
17








Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Thư mục
vendor
:chứa các module hoặcthư viện

Thư

mục


vendor
:

chứa

các

module

hoặc

thư

viện

của tổ chức thứ ba mà ứng dụng cần dùng tới. Nó có
thể bao
g
ồm cả ZF hoặc các thư viện từ các dự án
g
khác, không nên sửa đổi trạng thái ban đầu của các
thư viện và module đặt trong thư mục vendor chúng.


Thư mục module: chứa một hoặc nhi

u module cung
cấp các chức năng của ứng dụng
18








Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Cấu trúc module cơ bản:

Cấu

trúc

module




bản:
– Trong một module có thể chứa: code PHP, gồm cả
chứcnăng MVC code thư viện view script và các tài
chức

năng

MVC
,
code

thư

viện
,
view

script



các

tài

nguyên chung như: hình ảnh, CSS, JavaScript. Yêu
cầu du

y
nhất

có thể là tù
y
ch

n là m

t module ho

t
y
y ọ ộ ạ
động như một namespace PHP và nó chứa lớp
Module.php dưới namespace. Lớp này được
Zd
\
MdlM ử d để th hiệ ột ố
Z
en
d
\
M
o
d
u
l
e
M

anager s


d
ụng
để

th
ực
hiệ
n m
ột
s


nhiệm vụ.
19







Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en

d

MVC4
.
Z
en
d

MVC
20

×