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

Bài giảng Lập trình PHP nâng cao Zend framework 2 - Trung tâm tin học ĐH KHTN

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
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.
2.
3.
4.
5
5.

Giới thiệu ZF
Lý do chọn ZF
Giới thiệu ZF2
Zend MVC
Cài đặt và cấu hình ZF2

2


Bài 1: Tổng quan ZF2



1. Giới thiệu
thiệ ZF
 Zend Framework là 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
phần xử lý
ý ra một cách rõ ràng
g cho
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ụng
d
ZF để…
để
– 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

ề tới từng Action
– Có các thành p
phần thư viên hỗ trợ
ợ API của
các nhà cung cấp như Google, Yahoo, Flick
– Quản lý code dễ dàng, liệt kê và lấy các truy
vấn history
– Dễ dàng phát triển thêm các ứng dụng nhúng
nhúng,
sử dụng Plugins
4


Bài 1: Tổng quan ZF2

2 Lý d
2.
do chọn
h ZF
– Có 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).
– được xây dựng trên nền tảng lập trình hướng đối
tượng
ợ g nên có thể thừa kế,, nâng
g cấp
p các ứng
g dụng
ụ 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ến cấu hình ứng dụng theo ý muốn
muốn.
5


Bài 1: Tổng quan ZF2

2 Lý d
2.
do chọn
h ZF
– Tích hợp các thư viện,
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
– Cộng đồng người sử dụng Zend Framework lớn.
– 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 tuyển
y dụng
ụ g lập
ập trình viên biết Zend
Framework lớn
– Bảo mật của các ứng

g dụng
g rất tốt nên tránh được các
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

3 Giới thiệu
3.
thiệ ZF2
– Zend Framework 2 là một framwork mã
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.
5 3 x zend
Framework được xây dựng hoàn toàn theo
hướng đối tượng OOP và sử dụng hầu hết
các đặc điểm mới của PHP 5.3 như
namespaces late static binding
namespaces,
binding, phương thức
lambda và closures.
– Zend
Z d Framework
F
k 2 phát
hát ttriển
iể từ Z
Zend

d
Framework 1, một framework PHP rất thành
công
ô với
ới h
hơn 15 ttriệu
iệ llượtt tải về.

7


Bài 1: Tổng quan ZF2

Đặ điể
Đặc
điểm ZF2
 Cấu trúc mới:
– Theo mơ hình MVC, sử dụng Di, Events, Service,
Module
 Cải tiến về chức năng
533
 Sử dụng PHP 5.3.3
 PSR – 2 compliant (hỗ trợ pyrus, composer)
 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ủ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ể
Đặc
điểm ZF2
 Hầu như các version mới của ZF khơng có nhiều thay
đổi trong core nên ta có thể dễ dàng update.
 ZF tích hợp được gần như tất cả các thư viện PHP và
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 S di ti - Web
Syndication
W b Services...
S i
 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

9


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Kiến trúc MVC của ZF2


10


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Zend\Mvc là 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
hoạt.
 MVC layer được xây dựng ở phía trên của các
thà h phần
thành
hầ sau:
– Zend\ServiceManager – ZF2 cung cấp một bộ các
định nghĩa dịch vụ mặc định được
đ ợc thiết lập ở
Zend\Mvc\Service. ServiceManager tạo và cấu hình
instance và workflow trong ứng dụng
dụng.

11


Bài 1: Tổng quan ZF2

4.

4 Z
Zend
d MVC
– Zend\EventManager – MVC là một event driven.
driven
Thành phần này được sử dụng mọi nơi từ khởi tạo
ban đầu của ứng
g dụng,
g thông
gq
qua việc g
gọi trả về của
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
như
h render
d các
á view.
i
– Zend\Http – đặc biệt là các đối tượng request và
response được sử dụng trong:
response,
– Zend\Stdlib\DispatchableInterface. Tất cả các
“controller”
controller đơn giản là đối tượng dispatchable.
dispatchable

12



Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Trong MVC layer,
layer có một số thành phần con
được giới thiệu:
– 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ủa nó (hoặc
dispatchable).
– Zend\Http\PhpEnvironment
p p
cung
g cấp
p một
ộ bộ

decorator cho các đối tượng HTTP Request và
Response nhằm đảm bảo là các request được đưa
vào
à môi
ôi ttrường
ờ hiện
hiệ tại
t i (b
(bao gồm
ồ các

á query
parameter, POST parameter, HTTP header..)
13


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
– Zend\Mvc\Controller
Zend\Mvc\Controller, một bộ các lớp “controller”
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
gửi đi…
– 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
renderer
d
selection,
l ti
độ phân
hâ giải
iải view
i
script,

i t đăng
đă ký
helper…; ngoài ra, nó cung cấp các listener liên lạc
với MVC workflow
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

4.
4 Z
Zend
d MVC
 Gateway của MVC là đối tượng
Zend\Mvc\Application (gọi tắt là “Application”).
 Nhiệm
Nhiệ vụ chính
hí h của
ủ “A
“Application”
li ti ” là khởi ttạo các
á
tài nguyên, định tuyến request, nhận và gửi
controller
t ll phù
hù h
hợp ttrong các

á q
á ttrình
ì h đị
định
h
tuyến. Sau khi hồn thành, nó sẽ render view,
h à thà
hoàn
thành
h các
á request,
t ttrả
ả về
ề và
à gửi
ửi response.

15


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Cấu trúc ứng dụng cơ bản:

16



Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Cấu trúc ứng dụng cơ bản:
– Tập tin public/index.php: gồm tất cả các yêu cầu
(request) của người dùng đến website
website, nhận một
mảng các cấu hình đặt tại tập tin
config/application.config.php,
g pp
g p p, khi trả về nó gọi
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ợp nhất
nhất.

17


Bài 1: Tổng quan ZF2

4.

4 Z
Zend
d MVC
– 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
gồm cả ZF hoặc các thư viện từ các dự án
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

4.
4 Z
Zend
d MVC
 Cấu trúc module cơ bản:
– Trong một module có thể chứa: code PHP, gồm cả
chức năng MVC,
MVC code thư viện
viện, view script và các tài
nguyên chung như: hình ảnh, CSS, JavaScript. Yêu
cầu duyy nhất – có thể là tùyy chọn
ọ là một

ộ module hoạt

động như một namespace PHP và nó chứa lớp
Module.php dưới namespace. Lớp này được
Z d\M d l M
Zend\ModuleManager
sử
ửd
dụng để th
thực hiện
hiệ một
ột số

nhiệm vụ.

19


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC

20


Bài 1: Tổng quan ZF2


4.
4 Z
Zend
d MVC
– Khi một module hoạt động như một namespace,
namespace thư
mục module cũng phải có tên là tên của namespace.
Namespace
p
này
y cũng
g có thể bao g
gồm một tiền tố của
nhà cung cấp.
• Ví dụ: Module liên quan đến “User” có chức năng được cung
cấp
ấ bởi Z
Zend
d thì có
ó thể đặt tên
tê là “Z
“ZendUser”.
dU ”

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

}
21


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Có ba tập tin autoload_
autoload *.php
php khơng bắt buộc,
buộc
nhưng khuyến khích nên có, đó là:
– autoload
autoload_classmap.php:
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__).
DIR ).
– autoload_function.php: trả về một callback PHP mà
có thể thông
gq
qua spl
p _autoload_register().
g
() Thông
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
spl autoload register())
22


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC
 Đặc điểm của ba file này là cung cấp các cơ chế
mặc định phù hợp để tự động tải các lớp trong
module do đó cung cấp cách thức dễ dàng để
module,
thực thi module mà không cần
Zend\ModuleManager

23


Bài 1: Tổng quan ZF2

4.
4 Z
Zend

d MVC
 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
Zend\Config. Cấu hình chính nên là
“module.format”, và cấu hình dựa trên PHP nên
là “module
module.config.php
config php”.
 Thư mục src: tuân thủ cấu trúc thư mục chứa
source code
d của
ủ module.
d l Nê
Nên có
ó ít nhất
hất một
ột thư
th
mục con trong thư mục namespace.

24


Bài 1: Tổng quan ZF2

4.
4 Z
Zend
d MVC

 Thư mục view: chứa các view script có liên
quan tới các controller.
 Thư
Th mục test:
t t chứa
hứ các
á unit
it ttestt của
ủ ứng
ứ dụng.
d
Thông thường sử dụng PHPUnit, và chứa các
yếu
ế tố liên
liê quan đến
đế cấu
ấ hình
hì h của
ủ nó
ó ((víí dụ
d như
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



×