Lập trình ứng dụng Web với PHP Framework Sự phổ biến của Website và PHP Sự ra đời của Internet Sự ra đời và phát triển của hệ thống Website Mô hình lập trình Web: Client-Server và gi
Trang 1Giới thiệu PHP
Framework Tổng hợp và biên soạn bởi: Phạm Hồng Phong
SoICT-HUST
Trang 2Lập trình ứng dụng Web với PHP
Framework
Sự phổ biến của Website và PHP
Sự ra đời của Internet
Sự ra đời và phát triển của hệ thống Website
Mô hình lập trình Web: Client-Server và giao thức HTTP
PHP là ngôn ngữ phía Server
PHP là ngôn ngữ phía Server
Các mô hình tương tác thông qua:
• Website (HTTP Request – Response),
• Command Line Interface – CLI (Shell, Batch processing…)
• Web Service (SOAP, REST…),
Nguồn: “Tại sao nên chọn PHP ñể thiết kế Web
Trang 3Lập trình ứng dụng Web với PHP
Framework
Các ứng dụng phổ biến của PHP
Yahoo, Facebook, Wikipedia, Digg, Joomla, Wordpress
Các dạng Web tiêu biểu có thể viết
bằng PHP
Social Network, Message Board (Forum,
Guestbook, Blog…), CMS (Content
Management System), E-Commerce,
Multimedia (Image Gallery, Music, Video…), Web Mail, IM (Instant Message), Office
tools…
Trang 4Ưu ñiểm PHP
Mã nguồn mở
PHP là mi ễ n phí và t ự do (Open Source)
Có th ể đượ c cài đặ t trên h ầ u h ế t các Web Server thông d ụ ng hi ệ n nay nh ư Apache, IIS…
Tính cộng ñồng của PHP
C ộ ng độ ng làm PHP khá l ớ n và phát tri ể n
Linh ho ạ t hoàn thi ệ n các phiên b ả n
C ộ ng đồ ng h ỗ tr ợ , chia s ẻ kinh nghi ệ m PHP d ồ i dào: blog, forum, …
Trang 5Ưu ñiểm PHP
Thư viện phong phú và ña dạng
M ộ t đ o ạ n code, m ộ t hàm (PHP.net…) cho t ớ i
nh ữ ng cái l ớ n h ơ n nh ư Framework (Zend, CakePHP, CogeIgniter, Symfony…) , ứ ng d ụ ng hoàn ch ỉ nh (Joomla, Wordpress, PhpBB…)
Hỗ trợ kết nối nhiều hệ CSDL
Hỗ trợ kết nối nhiều hệ CSDL
Tích h ợ p s ẵ n nhi ề u Database Client trong PHP
Vi ệ c c ậ p nh ậ t và nâng c ấ p các Database Client
đơ n gi ả n ch ỉ là vi ệ c thay th ế các Extension c ủ a PHP
Các h ệ CSDL thông d ụ ng: MySQL, MS SQL, Oracle
Trang 6Ưu ñiểm PHP
Lập trình hướng ñối tượng
Từ phiên bản PHP 5, PHP đã có
khả năng hỗ trợ hầu hết các đặc
điểm nổi bật của lập trình hướng
đối tượng như: Inheritance, Abstraction, Encapsulation, Polymorphism, Interface,
Polymorphism, Interface, Autoload…
Ngày càng có nhiều Framework
và ứng dụng PHP viết bằng mô hình OOP => LTV tiếp cận và mở
rộng các ứng dụng này trở nên dễ
dàng và nhanh chóng
Trang 7Ưu ñiểm PHP
Bảo mật
Cung cấp nhiều cơ chế cho phép triển khai tính bảo
mật cho ứng dụng như session, các hàm filter dữ
liệu, kỹ thuật ép kiểu, thư viện PDO (PHP Data Object) để tương tác với cơ sở dữ liệu an toàn hơn
Kết hợp với các kỹ thuật bảo mật ở các tầng khác
Kết hợp với các kỹ thuật bảo mật ở các tầng khác
Khả năng mở rộng
Xây dựng trên nền C nên khả năng mở rộng cho ứng
dụng PHP là rất lớn
Thư viện phong phú và khả năng mở rộng lớn, ứng
dụng PHP có thể tương tác với hầu hết các loại ứng
dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming…
Trang 8Ưu ñiểm PHP
Bên cạnh PHP
Mỗi ngôn ngữ luôn có những tầng khác nhau để
khám phá, nên biết nhiều ngôn ngữ lập trình Web
Trang bị một số kiến thức khác trong công nghệ web
như : HTML, CSS, Javascript, UML, Database, Networking…
Học lập trình web thì nên vừa học theo chiều sâu và
học theo chiều rộng
Trang 9Tổng quan về PHP Framework
Framework: một thư viện mã lệnh được xây dựng sẵn để
sử dụng
PHP Framework (PF) là gì?
Viết trực tiếp các mã PHP là khó khăn và lủng củng, PHP Framework khắc phục điều này
PF cung cấp một cấu trúc cơ bản để xây dựng những ứng dụng bằng PHP
ứng dụng bằng PHP
Tiết kiệm thời gian, tăng sự ổn định cho ứng dụng, và giảm thiểu số lần phải viết lại mã
Trang 10Tổng quan về PHP Framework
Ph ươ ng th ứ c làm vi ệ c c ủ a PHP
Framework: mô hình lập trình MVC
MVC: mô hình (ki ế n trúc) trong l ậ p trình,
cho phép tách bi ệ t các mã nghi ệ p v ụ
(business logic) và giao di ệ n (UI) thành
các ph ầ n riêng bi ệ t, do đ ó có th ể ch ỉ nh
s ử a chúng m ộ t cách riêng l ẻ
s ử a chúng m ộ t cách riêng l ẻ
Model(M): phầ n x ử lý các thao tác v ề nghi ệ p v ụ (business
logic), View(V) là phầ n x ử lý l ớ p giao di ệ n (presentation layer),
và Controller(C) làm nhiệ m v ụ l ọ c các request đượ c g ọ i t ừ
user, có ch ứ c n ă ng nh ư m ộ t route: đ i ề u ch ỉ nh, phân lu ồ ng các yêu c ầ u để g ọ i đ úng Model & View thích h ợ p
Nguồn: “PHP Framework là gì
Trang 11Tổng quan về PHP Framework
Tại sao nên sử dụng PHP Framework?
T ă ng t ố c quá trình phát triể n ứ ng d ụ ng, s ử
d ụ ng l ạ i các mã l ệ nh gi ố ng nhau trong nhi ề u project
M ộ t framework cung c ấ p s ẵ n các module
n ề n t ả ng cầ n thi ế t để xây d ự ng m ộ t project
S ự ổn đị nh
Tính đơ n gi ả n, dễ h ọ c, d ễ s ử d ụ ng
Có s ẵ n r ấ t nhi ề u thành ph ầ n m ở r ộ ng
(extensive), và c ũ ng có r ấ t nhi ề u framework khác nhau để l ự a ch ọ n
Trang 12Tổng quan về PHP Framework
Khi nào thì sử dụng PHP framework?
Nên s ử d ụ ng framework b ấ t c ứ khi có th ể , s ẽ giúp
gi ả m b ớ t các đ o ạ n mã thi ế u tính khoa h ọ c, t ă ng t ố c cho quá trình xây d ự ng ứ ng d ụ ng
Đố i v ớ i các l ậ p trình viên PHP có kinh nghi ệ m,
framework đượ c xem nh ư m ộ t công c ụ giúp đỡ
framework đượ c xem nh ư m ộ t công c ụ giúp đỡ các l ậ p trình viên còn y ế u
PHP framework rất có ích khi đang làm việc trong
một tình trạng thời gian gấp rút
• Khi làm m ộ t project v ớ i s ố l ượ ng mã ph ả i vi ế t quá l ớ n, nó s ẽ
giúp công vi ệ c tr ở nên b ớ t dài dòng h ơ n.
Trang 13Tổng quan về PHP Framework
Lựa chọn PHP Framework
Độ ph ổ bi ế n Framework: phù h ợ p v ớ i nhu c ầ u c ủ a
ứ ng d ụ ng
S ố l ượ ng các LTV trong nhóm
Cân nh ắ c gi ữ a s ố l ượ ng ng ườ i s ử d ụ ng và nhu c ầ u
c ủ a ứ ng d ụ ng
c ủ a ứ ng d ụ ng
Các y ế u t ố khác: d ễ s ử d ụ ng, phát tri ể n nhanh và
hi ệ u qu ả , ph ổ bi ế n gi ữ a các LTV, có các tính n ă ng
m ạ nh m ẽ , có di ễ n đ àn h ỗ tr ợ
Nên tìm hi ể u, dùng th ử và nh ờ t ư v ấ n
Trang 14Tổng quan về PHP Framework
Lưu ý khi sử dụng PHP Framework
PHP framework sẽ giúp h ạ n ch ế r ấ t nhi ề u sai sót (l ỗ i) b ằ ng cách cung c ấ p các th ư vi ệ n mã
l ệ nh chu ẩ n
N ế u không ph ả i là m ộ t chuyên gia l ậ p trình PHP, nên s ử d ụ ng m ộ t lo ạ i framework ph ổ
bi ế n, có m ộ t c ộ ng đồ ng h ỗ tr ợ r ộ ng l ớ n
B ả o đả m đượ c c ấ u hình đề xu ấ t để các phiên
b ả n database và web server t ươ ng thích v ớ i
framework
Trang 15Các PHP Framework phổ biến
Yii Framework
D ễ s ử d ụ ng, d ễ ti ế p c ậ n, b ả o m ậ t cao và chuyên nghi ệ p
Phát tri ể n t ố t nh ấ t trên các ứ ng d ụ ng Web 2.0, s ử d ụ ng t ố i đ a các thành ph ầ n để t ă ng t ố c độ vi ế t ứ ng d ụ ng
Yii là framework MVC nh ư ng có ki ế n trúc OOP r ấ t t ố t và đị nh
h ướ ng theo component nên m ứ c độ tái s ử d ụ ng gi ữ a các
project r ấ t cao
Trang 16Các PHP Framework phổ biến
Zend Framework
Cộng đồng phát triển rộng lớn
Tập trung vào các ứng dụng Web 2.0
Tính năng mạnh, được dùng cho các công ty lớn
Trang 17Các PHP Framework phổ biến
CodeIgniter
Dễ hiểu và dễ sử dụng, hiệu suất cao
Hướng tới các ứng dụng lưu trữ, chia sẻ
Có một thư viện video hướng dẫn phong phú, diễn đàn hỗ trợ, và cung cấp sẵn một hướng dẫn sử dụng cho người
Trang 18Các PHP Framework phổ biến
CakePHP
Kiến thức vững về PHP
Lợi ích cho rapid development
Trang 19Các PHP Framework phổ biến
Symfony
Nâng cao h ơ n cho nh ữ ng l ậ p trình viên mu ố n t ạ o ra các ứ ng
d ụ ng website doanh nghi ệ p.
PHP Framework mã ngu ồ n m ở