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

LẬP TRÌNH PHP NÂNG CAO 2 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 (11.55 MB, 403 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
Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.

Z
en
d

MVC

Khi một module hoạt động như một namespace thư

Khi

một

module

hoạt

động

như

một

namespace
,
thư

mục module cũng phải có tên là tên của namespace.
Names
p
ace nà

y
cũn
g
có thể bao
g
ồm một tiền tố của
pyg g
nhà cung cấp.
•Ví dụ: Module liên quan đến “User” có chức năng được cung
ấ bởiZ dthì óthể đặttê là“Z dU ”
c

p
bởi

Z
en
d

thì
c
ó

thể

đặt


n



“Z
en
dU
ser

.
– Tập tin Module.php sẽ nằm trong thư mục –
namespace này
namespace

này
.
namespace ZendUser;
class Module
{
21
}
Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en

d

MVC

Có ba tập tin
autoload
*
php
không bắtbuộc



ba

tập

tin

autoload
_.
php
không

bắt

buộc
,
nhưng khuyến khích nên có, đó là:
autoload classmap php
:trả về mảng classmap của


autoload
_
classmap
.
php
:

trả

về

mảng

classmap

của

các cặp class name/filename (với các tên tập tin
được thông qua hằng số
DIR ).
được

thông

qua

hằng

số


_
_
DIR
__
).
– autoload_function.php: trả về một callback PHP mà
có thể thôn
g

q
ua s
p
l autoload re
g
ister
()
. Thôn
g

gq p
__
g() g
thường callback này nên sử dụng ánh xạ được trả về
bởi autoload_classmap.php.
– autoload_register.php: nên đăng ký một PHP
callback (thường được trả về bởi
autoload function php v
ới
spl autoload register())

autoload
_
function
.
php

v
ới

spl
_
autoload
_
register())
.
22
Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d


MVC

Đặc điểmcủa ba file này là cung cấpcáccơ chế

Đặc

điểm

của

ba

file

này



cung

cấp

các



chế

mặc định phù hợp để tự động tải các lớp trong
module do đó cung cấpcáchthứcdễ dàng để

module
,
do

đó

cung

cấp

cách

thức

dễ

dàng

để

thực thi module mà không cần
Zend
\
ModuleManager
Zend
\
ModuleManager
23
Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC

4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Thư mục
config
: nên chứacáccấu hình module

Thư

mục

config
:

nên

chứa

các


cấu

hình

module

cụ thể. Các file này có đĩnh dạng được hỗ trợ
của Zend
\
Config Cấu hình chính nên là
của

Zend
\
Config
.
Cấu

hình

chính

nên



“module.format”, và cấu hình dựa trên PHP nên



module config php



module
.
config
.
php
.
 Thư mục src: tuân thủ cấu trúc thư mục chứa
d ủ dl Nê óít hất ộtth
source co
d
e c

a mo
d
u
l
e.

n c
ó

ít
n
hất
m
ột


th
ư
mục con trong thư mục namespace.
24
Bài 1: Tổng quan ZF2
4Z dMVC4Z dMVC
4
.
Z
en
d

MVC4
.
Z
en
d

MVC

Thư mục
view
:chứa các view script có liên

Thư

mục

view

:

chứa

các

view

script



liên

quan tới các controller.
Th
tt
hứ áitttủ ứ d

Th
ư mục
t
es
t
: c
hứ
a c
á
c un
it


t
es
t
c

a

ng
d
ụng.
Thông thường sử dụng PHPUnit, và chứa các
ế tố liê đế ấ hì h ủ ó( íd h
y
ế
u
tố

liê
n quan
đế
n c

u

n
h
c

a n

ó

(
v
í

d
ụ n
h
ư
phpunit.xml, bootstrap.php)
 Thư mục public: chứa những thứ dùng chung
cho ứng dụng, có thể là thư mục images, CSS,
JavaScript…
25

×