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

Giáo trình mô đun Lập trình web PHP nâng cao (Nghề Công nghệ thông tin - Trình độ cao đẳng) - CĐ Kỹ thuật Công nghệ BR-VT

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 (1.56 MB, 39 trang )

BM/QT10/P.ĐTSV/04/04
Ban hành lần: 3

UBND TỈNH BÀ RỊA – VŨNG TÀU
TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ

GIÁO TRÌNH
MƠ ĐUN LẬP TRÌNH WEB PHP NÂNG CAO
NGHỀ: CƠNG NGHỆ THƠNG TIN
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành kèm theo Quyết định số: ……/QĐ­CĐKTCN, ngày … tháng … năm  
20…… của Hiệu trưởng Trường Cao đẳng Kỹ thuật Cơng nghệ BR­VT)

BÀ RỊA – VŨNG TÀU, NĂM 2020


TUN BỐ BẢN QUYỀN
Nhằm đáp  ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh 
viên nghề  Cơng nghệ  Thơng tin trong trường Cao đẳng Kỹ  thuật Cơng nghệ 
Bà Rịa – Vũng Tàu, chúng tơi đã thực hiện biên soạn tài liệu Lập trình web 
PHP nâng cao.
Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học  
tập, lưu hành nội bộ  trong Nhà trường nên các nguồn thơng tin có thể  được 
phép dùng ngun bản hoặc trích dùng cho các mục đích về  đào tạo và tham  
khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh 
doanh thiếu lành mạnh sẽ bị nghiêm cấm.


LỜI GIỚI THIỆU


Giáo trình “Lập trình web PHP nâng cao” được biên soạn dựa trên khung  
chương trình đào tạo Cao đẳng nghề  Cơng nghệ  Thơng tin đã được Trường 
Cao đẳng Kỹ thuật Cơng nghê Bà Rịa – Vũng Tàu phê duyệt.
Tác giả  đã nghiên cứu một số  tài liệu, cơng nghệ  hiện đại kết hợp với  
kinh nghiệm làm việc thực tế  để  viết nên giáo trình này. Nội dung được tác  
giả  trình bày cơ động, dễ  hiểu kèm theo các bước hướng dẫn thực hành chi  
tiết theo ngun tắc quan tâm đến kết quả  đầu ra, khả  năng tự  học và kỹ 
năng cần thiết để  HSSV có thể  hồn thành  ứng dụng web quảng cáo sản  
phẩm, thương mại điện tử, … bằng ngơn ngữ  PHP, một trong những ngơn 
ngữ  lập trình  ứng dụng web thơng dụng hiện nay, đáp  ứng nhu cầu thực tế 
của doanh nghiệp.
Nội dung giáo trình được chia thành 07 bài, trong đó:
Bài 1: Tổng quan
Bài 2: Tạo ứng dụng CodeIgniter đầu tiên
Bài 3: Routing
Bài 4: Controller
Bài 5: View
Bài 6: Model
Bài 7: Hồn chỉnh Controller/View
Trong q trình biên soạn, chắc chắn giáo trình cịn nhiều thiếu sót. Tác  
giả rất mong nhận được ý kiến đóng góp của q thầy/cơ và các em học sinh,  
sinh viên để tiếp tục hồn thiện hơn.
Xin chân thành cảm  ơn q đồng nghiệp, bạn bè đã có những ý kiến  
đóng góp trong q trình biên soạn giáo trình này.
Bà Rịa – Vũng Tàu, ngày …… tháng …… năm ………
Tham gia biên soạn
1. Phan Hữu Phước – Chủ biên




MỤC LỤC


GIÁO TRÌNH MƠ ĐUN

Tên mơ đun: Lập trình web PHP nâng cao
Mã mơ đun: MĐ29
Vị trí, tính chất, ý nghĩa và vai trị của mơ đun:
Sau khi học xong Lập trình web PHP & MySQL
Cung cấp cho người học kiến thức và kỹ năng để có thể thiết kế, xây dựng 
và phát  triển  ứng dụng web theo mơ hình MVC dựa trên CodeIgniter 
Framework.
Mục tiêu của mơ đun:
Về kiến thức:
Trình bày được MVC
Trình bày q trình route và xử lý u cầu trong site CodeIgniter
Biết các bước tạo website PHP sử dụng framework CodeIgniter
Trình bày quy trình xây dựng Model, Controller
Trình bày quy trình truyền dữ liệu Model, Controller, View
Biết quy trình truy xuất CSDL
­ Về kỹ năng:
Tải và tạo site sử dụng framework CodeIgniter
Tạo Route
Tạo Model, Cotroller
Định nghĩa các thuộc tính, phương thức cho Model
Định nghĩa các hàm cho Controller
Tạo View cho các hàm trong Controller
Xây dựng các hàm truy xuất CSDL trong Model, Controller
Tạo các View hiển thị dữ liệu
Về năng lực tự chủ và trách nhiệm:



Tham   gia   xây   dựng   các   chức   năng   cho   website   sử   dụng   framework 
CodeIgniter.
Có thể  vận dụng để  xây dựng website thương mại, quảng bá chun 
nghiệp bằng các framework, CMS mã nguồn mở: Wordpress, Joomla,  

Lưu site đúng đường dẫn
Đặt tên tập tin, thư mục đúng quy định
Tự  tìm hiểu tài liệu nâng cao kiến thức và kỹ  năng xây dựng  ứng dụng 
web theo mơ hình MVC
Nội dung của mơ đun:


BÀI 1: TỔNG QUAN
Mã bài: 22.1
Giới thiệu:
MVC là mơ hình ứng dụng web phổ biến hiện nay. Có nhiều framework  
mã   nguồn   mở   dùng   ngơn   ngữ   PHP   với   mơ   hình   MVC,   trong   số   đó   có 
framework CodeIgniter.
Mục tiêu:
Trình bày các thành phần trong mơ hình MVC
Biết lợi ích của framework CodeIgniter
Trình bày dịng xử lý của CodeIgniter sau khi tiếp nhận u cầu
Tự tìm hiểu các thơng tin khác trên trang CodeIgniter
Đảm bảo an tồn cho người và thiết bị
Nội dung chính:
Mơ hình MVC
Model View Controller là một mơ hình kiến trúc theo hướng đối tượng, cho  
phép người phát triển tách một ứng dụng thành 3 thành phần chính:

Model: thành phần đại diện cho dữ  liệu của  ứng dụng, bao gồm cả chức  
năng kiểm tra tính hợp lệ của dữ liệu.
View: thành phần đảm trách việc hiển thị dữ  liệu và các thành phần trong 
giao diện người dùng.
Controller: thành phần có trách nhiệm tiếp nhận và xử  lý các u cầu gửi 
đến cho  ứng dụng, làm nhiệm vụ  điều phối cơng việc giữa View và 
Model.
  Việc phát triển  ứng dụng, nâng cấp, bảo trì và thử  nghiệm trở  nên đơn 
giản và dễ dàng hơn.


Hình 1.1. Các thành phần trong mơ hình MVC

Hình 1.2. Hoạt động của mơ hình MVC
CodeIgniter
Là mã nguồn mở  giúp dễ  dàng xây dựng  ứng dụng web theo mơ hình MVC 
bằng ngơn ngữ PHP với nhiều ưu điểm.
Miễn phí
Dung lượng nhỏ
Nhanh
Tạo URL rõ ràng theo SEO
Khơng u cầu engine
Có đầy đủ  thư  viện hỗ  trợ  việc truy xuất CSDL, xử  lý gửi/nhận email, 
hình ảnh, upload tập tin
Hỗ trợ xử lý phân trang

(Xem thêm:  />

Dịng xử lý của ứng dụng web CodeIgniter


Tập tin index.php khởi tạo các nguồn tài ngun cần thiết.
Route phân tích u cầu để quyết định cơng việc cần xử lý.
Nếu tập tin cache đã có, sẽ được gửi trực tiếp đến trình duyệt.
An tồn: trước khi controller được nạp, u cầu HTTP và dữ liệu nào được 
submit đều được lọc.
Controller nạp model, thư  viện, helper, và các nguồn tài ngun cần thiết 
khác để xử lý đáp ứng cho u cầu cụ thể.
Cuối cùng, view được diễn giải sau đó gửi cho trình duyệt. Nếu cache  
được bật thì view được lưu vào cache trước rồi mới giải quyết u cầu.
CÂU HỎI, BÀI TẬP
1.1. Tên và chức năng của các thành phần trong mơ hình MVC?
1.2. Dịng xử lý của ứng dụng web CodeIgniter?


BÀI 2: TẠO ỨNG DỤNG CODEIGNITER ĐẦU TIÊN
Mã bài: 22.2
Giới thiệu:
Bài này giúp HSSV tạo site mới từ mã nguồn CodeIgniter, khảo sát cấu 
trúc lưu trữ bên trong site được tạo từ framework CodeIgniter.
Mục tiêu:
Biết địa chỉ để tải framework CodeIgniter
Biết cú pháp URI trong website được viết theo mơ hình MVC
Tạo site bằng CodeIgniter framework
Lưu site vào đúng đường dẫn
Nội dung chính:
1. Tạo cơ sở dữ liệu
Tạo và nhập dữ liệu cho CSDL bookstore theo u cầu dưới.
Table chude

Table nxb


Table tacgia

Table sach


Table thamgia

Quan hệ

Dữ liệu


2. Tải mã nguồn và tạo site
Bước 1: truy cập trang web 
Bước 2: click chuột lên biểu tượng Download để tải mã nguồn

Bước 3: giải nén tập tin đã tải
Bước   4:   copy   các   tập   tin   và   thư   mục   bên   trong   vào 
C:\xampp\htdocs\IgniterSite1
(C:\xampp là thư mục củ gói XAMPP đã được cài đặt trên máy tính)


Hình 2.1. Mã nguồn CodeIgniter
Bước   5:   Tạo   IgniterSite1   đến   C:\xampp\htdocs\IgniterSite1   trong 
DreamWeaver


Cấu trúc thư mục


Hình 2.2. Cấu trúc tập tin, thư mục bên trong site CodeIgniter
config: chứa các tập tin cấu hình
controllers: chứa các tập tin định nghĩa controller
models: chứa các tập tin định nghĩa lớp đối tượng model
views: chứa các tập tin giao diện (view)
CÂU HỎI, BÀI TẬP
2.1. Tải mã nguồn và tạo site tracuudiem
2.2. Tên thư mục chứa các tập tin cấu hình?


BÀI 3: ROUTING
Mã bài: 22.3
Giới thiệu:
Cơng việc ngay sau khi tạo mới một site là phải cấu hình. Bên cạnh đó, 
cịn phải định nghĩa route xử lý một số u cầu đặc biệt bên trong ứng dụng.
Mục tiêu:
Biết q trình xử lý u cầu của site
Biết chức năng của route trong site
Cấu hình cho site CodeIgniter framework
Tạo một trang đơn giản
Đặt tên tập tin, thư mục đúng quy tắc
Nội dung chính:
1. Cấu hình site
1.1. Nhập thơng tin cấu hình chung
Bước 1: mở  tập tin  application/config/config.php  và cập nhật cho 2 dịng 
lệnh

Bước 2: mở tập tin application/config/database.php và cập nhật thơng tin truy 
cập CSDL MySQL



1.2. Đọc thơng tin cấu hình
Cú pháp

Ví dụ: Mở  tập tin  application/views/welcome_message.php  và cập nhật như 
sau:


Truy cập lại trang trên trình duyệt để xem kết quả.
1.3. Tạo thơng tin cấu hình riêng
B1: Tạo tập tin cấu hình  application/config/customconfig.php  và nhập nội 
dung như sau:

B2:   Tải   tập   tin   cấu   hình   riêng.   Mở   tập   tin 
application/controllers/Welcome.php và cập nhật cho hàm index

B3: Đọc thơng tin cấu hình riêng
Mở tập tin application/views/welcome_message.php và cập nhật nội dung như 
sau:

Cấu trúc địa chỉ
Địa chỉ site theo mơ hình MVC có cấu trúc tổng qt như sau:
Nếu khơng có method thì hàm hành động index sẽ được gọi.


controller: lớp đối tượng nhận xử lý u cầu
method: hàm hành động được gọi của controller
arguments: tham số truyền vào hàm hành động
Ví dụ 1: http://localhost/ignitersite1/index.php/sach/chude/1
controller: sach

method: chude
arguments: id=1
Ví dụ 2: http://localhost/ignitersite1/index.php/sach/xem/13412786 
controller: sach
method: xem
arguments: id=13412786
Ví dụ 3: http://localhost/ignitersite1/index.php/home/gioithieu
controller: home
method: gioithieu
arguments: khơng có
Ví dụ 4: http://localhost/ignitersite1/index.php/home
controller: home
method: index
arguments: khơng có
Ví dụ 5: http://localhost/ignitersite1/index.php
controller: welcome (quy định trong tập tin application/config/routes.php)
method: index
arguments: khơng có
Cấu hình route mặc định
Mở  tập tin application/config/routes.php. Xóa hết tất cả  và cập nhật lại nội 
dung như sau:


Khi địa chỉ truy cập được tìm thấy trong tập tin routes.php thì sẽ  được xử  lý  
theo quy tắc bên trong routes.php. Ngược lại, u cầu sẽ được xử lý theo cấu 
trúc tổng qt (đã trình bày trong Mục 3.1).
Với định nghĩa route như  trên, các controller, method và arguments sẽ  được 
truyền khi truy cập địa chỉ tương ứng như sau:
Ví dụ 1: http://localhost/ignitersite1
controller: home

method: index
arguments: khơng có
Ví dụ 2: http://localhost/ignitersite1/index.php/home/gioithieu
controller: home
method: view
arguments: id=‘gioithieu’
Ví dụ 3: http://localhost/ignitersite1/index.php/home/lienhe
controller: home
method: view
arguments: id=‘lienhe’
Khi truy cập các địa chỉ trên thì sẽ hiển thị kết quả sau:


Như  phân tích với các ví dụ  trên,  ứng dụng cần phải có controller home với 
các hàm index và view.
Tạo tập tin application/controllers/Home.php với nội dung bên dưới.

Đã tạo xong controller home với các method (hàm hành động) index và view.
Truy cập trang theo địa chỉ của 3 ví dụ trên để xem kết quả.
CÂU HỎI, BÀI TẬP
Cập nhật tập tin  application/config/routes.php  và tạo các controller để  hiển 
thị kết quả với địa chỉ truy cập tương ứng như sau:
http://localhost/ignitersite1/index.php/sach
DANH MỤC SÁCH MỚI
http://localhost/ignitersite1/index.php/sach/chude/1
DANH MỤC SÁCH THUỘC CHỦ ĐỀ 1
http://localhost/ignitersite1/index.php/sach/chude/2
DANH MỤC SÁCH THUỘC CHỦ ĐỀ 2
http://localhost/ignitersite1/index.php/sach/nxb/6
DANH MỤC SÁCH THUỘC NXB 6

http://localhost/ignitersite1/index.php/sach/tacgia/9
DANH MỤC SÁCH THUỘC TÁC GIẢ 9
GỢI Ý, ĐÁP ÁN
Tập tin routes.php


Tập tin sach.php
Cách 1:

Cách 2:

 Cập nhật lại tập tin routes.php như thế nào cho phù hợp với cách 2?


BÀI 4: CONTROLLER
Mã bài: 22.4
Giới thiệu:
Thành phần quan trọng tiếp nhận và xử lý u cầu chính là controller.
Mục tiêu:
Trình bày khái niệm và cơng dụng của Controller
Tạo được lớp đối tượng kế thừa controller
Tạo các hàm hành động trong controller
Đặt tên tập tin đúng quy định
Nội dung chính:
1. Khái niệm
Controller là một lớp đối tượng được dẫn xuất từ  CI_Controller, có chức 
năng tiếp nhận và xử lý u cầu được route chuyển đến. Bên trong controller  
chứa các hàm (hành động) xử lý theo từng u cầu cụ thể.
Tạo controller
Mỗi   controller   được   định   nghĩa   trong   một   tập   tin   đặt   trong   thư   mục 

application/ controllers. Mỗi controller là một lớp đối tượng được dẫn suất 
từ CI_Controller.
Cú pháp
defined(‘BASEPATH’) or exit (‘Truy cap trai phep’);
class <TênController> extends CI_Controller{
}

Chú ý: Tên controller phải bắt đầu bằng ký tự  In. Tên tập tin giống với tên 
controller, có phần mở rộng là .php
Ví dụ:
Định nghĩa controller TacGia trong tập tin application/controllers/TacGia.php


Tạo hàm hành động
Mỗi hàm hành động là một phương thức xử lý bên trong controller.
Ví dụ:

Truy cập theo địa chỉ  http://localhost/ignitersite1/index.php/tacgia để  xem kết 
quả
Tạo thêm các hàm hành động cho controller TacGia như sau:


Tổ chức controller trong thư mục
Với các  ứng dụng web lớn, CodeIgniter cho phép nhà phát triển tách/tổ  chức 
các controller trong thư mục con. Ví dụ: các trang/chức năng quản lý nội dung  
được truy cập theo địa chỉ http://localhost/codeignitersite1/quantri
Bước 1: Tạo thư mục application/controllers/quantri
Bước 2: Tạo các controller trong thư mục application/controllers/quantri
CÂU HỎI, BÀI TẬP

4.1. Tạo các controller Chude, Nxb, Sach với các hàm hành động bên trong, 
tương tự controller Tacgia đã xây dựng ở trên.
GỢI Ý, ĐÁP ÁN
Tham khảo tập tin controller/Tacgia.php


×