Lập trình web PHP nâng cao (Cao đẳng CNTT) - Nguồn: BCTECH

45 21 1
Lập trình web PHP nâng cao (Cao đẳng CNTT)
                                 - Nguồn: BCTECH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 nguyên 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 [r]

(1)

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…… Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR-VT)

(2)

TUYÊN BỐ BẢN QUYỀN

Nhằm đáp ứng nhu cầu học tập nghiên cứu cho giảng viên sinh viên nghề Công nghệ Thông tin trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu, chúng tơi thực biên soạn tài liệu Lập trình web PHP nâng cao

Tài liệu biên soạn thuộc loại giáo trình phục vụ giảng dạy học tập, lưu hành nội Nhà trường nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo

(3)

LỜI GIỚI THIỆU

Giáo trình “Lập trình web PHP nâng cao” biên soạn dựa khung chương trình đào tạo Cao đẳng nghề Công nghệ Thông tin 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 số tài liệu, công nghệ đạ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ội dung tác giả trình bày động, dễ hiểu kèm theo bước hướng dẫn thực hành chi tiết theo nguyên tắc quan tâm đến kết đầu ra, khả tự học kỹ cần thiết để HSSV hồn thành ứng dụng web quảng cáo sản phẩm, thương mại điện tử, … ngơn ngữ PHP, ngơn ngữ lập trình ứng dụng web thông dụng nay, đáp ứng nhu cầu thực tế doanh nghiệp

Nội dung giáo trình chia thành 07 bài, đó: Bài 1: Tổng quan

Bài 2: Tạo ứng dụng CodeIgniter Bài 3: Routing

Bài 4: Controller Bài 5: View Bài 6: Model

Bài 7: Hoàn chỉnh Controller/View

Trong trình biên soạn, chắn giáo trình cịn nhiều thiếu sót Tác giả mong nhận ý kiến đóng góp q thầy/cơ em học sinh, sinh viên để tiếp tục hoàn thiện

Xin chân thành cảm ơn quý đồng nghiệp, bạn bè có ý kiến đóng góp trình biên soạn giáo trình

Bà Rịa – Vũng Tàu, ngày …… tháng …… năm ……… Tham gia biên soạn

(4)

MỤC LỤC

LỜI GIỚI THIỆU

MỤC LỤC

BÀI 1: TỔNG QUAN

1 Mơ hình MVC

2 CodeIgniter 10

3 Dòng xử lý ứng dụng web CodeIgniter 10

CÂU HỎI, BÀI TẬP 11

BÀI 2: TẠO ỨNG DỤNG CODEIGNITER ĐẦU TIÊN 13

1 Tạo sở liệu 13

2 Tải mã nguồn tạo site 15

3 Cấu trúc thư mục 16

CÂU HỎI, BÀI TẬP 16

BÀI 3: ROUTING 17

1 Cấu hình site 17

1.1 Nhập thơng tin cấu hình chung 17

1.2 Đọc thơng tin cấu hình 18

1.3 Tạo thơng tin cấu hình riêng 18

2 Cấu trúc địa 19

3 Cấu hình route mặc định 20

CÂU HỎI, BÀI TẬP 21

GỢI Ý, ĐÁP ÁN 22

BÀI 4: CONTROLLER 23

1 Khái niệm 23

2 Tạo controller 23

3 Tạo hàm hành động 23

4 Tổ chức controller thư mục 24

(5)

GỢI Ý, ĐÁP ÁN 25

BÀI 5: VIEW 27

1 Khái niệm 27

2 Tạo view 27

2.1 Tạo view dùng chung 28

2.2 Tạo view nội dung cho trang 29

3 Tải view 29

4 Truyền liệu đến view 29

5 Form view 30

CÂU HỎI, BÀI TẬP 31

BÀI 6: MODEL 33

1 Khái niệm 33

2 Tạo model 33

3 Định nghĩa hàm model 34

3.1 Cập nhật hàm GetList (Đọc nhiều dòng liệu) 34

3.2 Cập nhật hàm GetEntry (Đọc dịng liệu theo khóa) 34

3.3 Cập nhật hàm Insert (Thêm dòng liệu) 35

3.4 Cập nhật hàm Update (Cập nhật dòng liệu) 35

3.5 Cập nhật hàm Delete (Xóa dịng liệu) 35

4 Truy xuất CSDL thông qua model controller 35

4.1 Thêm hàm khởi tạo 35

4.2 Cập nhật hàm index 36

4.3 Cập nhật tập tin application/views/tacgia/index.php 36

CÂU HỎI, BÀI TẬP 36

GỢI Ý, ĐÁP ÁN 36

BÀI 7: HOÀN CHỈNH CONTROLLER/VIEW 37

1 Thêm liệu 37

(6)(7)

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 vai trị mơ đun:  Sau học xong Lập trình web PHP & MySQL

 Cung cấp cho người học kiến thức kỹ để thiết kế, xây dựng phát triển ứng dụng web theo mơ hình MVC dựa CodeIgniter Framework

Mục tiêu mô đun:  Về kiến thức:

+ Trình bày MVC

+ Trình bày trình route xử lý yêu cầu site CodeIgniter + Biết 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 liệu Model, Controller, View + Biết quy trình truy xuất CSDL

 - Về kỹ năng:

+ Tải tạo site sử dụng framework CodeIgniter + Tạo Route

+ Tạo Model, Cotroller

+ Định nghĩa thuộc tính, phương thức cho Model + Định nghĩa hàm cho Controller

+ Tạo View cho hàm Controller

+ Xây dựng hàm truy xuất CSDL Model, Controller + Tạo View hiển thị liệu

 Về lực tự chủ trách nhiệm:

+ Tham gia xây dựng chức cho website sử dụng framework CodeIgniter

(8)

+ Đặt tên tập tin, thư mục quy định

+ Tự tìm hiểu tài liệu nâng cao kiến thức kỹ xây dựng ứng dụng web theo mơ hình MVC

(9)

BÀI 1: TỔNG QUAN Mã bài: 22.1

Giới thiệu:

MVC mơ hình ứng dụng web phổ biến Có nhiều framework mã nguồn mở dùng ngơn ngữ PHP với mơ hình MVC, số có framework CodeIgniter

Mục tiêu:

 Trình bày thành phần mơ hình MVC  Biết lợi ích framework CodeIgniter

 Trình bày dịng xử lý CodeIgniter sau tiếp nhận u cầu  Tự tìm hiểu thơng tin khác trang CodeIgniter

 Đảm bảo an toàn cho người thiết bị Nội dung chính:

1 Mơ hình MVC

Model View Controller mơ hình kiến trúc theo hướng đối tượng, cho phép người phát triển tách ứng dụng thành thành phần chính:

 Model: thành phần đại diện cho liệu ứng dụng, bao gồm chức kiểm tra tính hợp lệ liệu

 View: thành phần đảm trách việc hiển thị liệu thành phần giao diện người dùng

 Controller: thành phần có trách nhiệm tiếp nhận xử lý yêu cầu gửi đến cho ứng dụng, làm nhiệm vụ điều phối công việc View Model  Việc phát triển ứng dụng, nâng cấp, bảo trì thử nghiệm trở nên đơn giản dễ dàng

(10)

Hình 1.2 Hoạt động mơ hình MVC 2 CodeIgniter

Là mã nguồn mở giúp dễ dàng xây dựng ứng dụng web theo mô hình MVC 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: http://codeigniter.com/userguide3/overview/features.html) 3 Dòng xử lý ứng dụng web CodeIgniter

(11)

 An toàn: trước controller nạp, yêu cầu HTTP liệu submit lọc

 Controller nạp model, thư viện, helper, nguồn tài nguyên cần thiết khác để xử lý đáp ứng cho yêu cầu cụ thể

 Cuối cùng, view diễn giải sau gửi cho trình duyệt Nếu cache bật view lưu vào cache trước giải yêu cầu

CÂU HỎI, BÀI TẬP

(12)

BÀI 2: TẠO ỨNG DỤNG CODEIGNITER ĐẦU TIÊN Mã bài: 22.2

Giới thiệu:

Bài giúp HSSV tạo site từ mã nguồn CodeIgniter, khảo sát cấu trúc lưu trữ bên site tạo từ framework CodeIgniter

Mục tiêu:

 Biết địa để tải framework CodeIgniter

 Biết cú pháp URI website viết theo mơ hình MVC  Tạo site CodeIgniter framework

 Lưu site vào đường dẫn Nội dung chính:

1 Tạo sở liệu

Tạo nhập liệu cho CSDL bookstore theo yêu cầu  Table chude

 Table nxb

 Table tacgia

(13)

 Table thamgia

 Quan hệ

(14)

2 Tải mã nguồn tạo site

Bước 1: truy cập trang web http://codeigniter.com

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 tập tin thư mục bên vào C:\xampp\htdocs\IgniterSite1 (C:\xampp thư mục củ gói XAMPP cài đặt máy tính)

Hình 2.1 Mã nguồn CodeIgniter

(15)

4 Cấu trúc thư mục

Hình 2.2 Cấu trúc tập tin, thư mục bên site CodeIgniter  config: chứa tập tin cấu hình

 controllers: chứa tập tin định nghĩa controller

 models: chứa tập tin định nghĩa lớp đối tượng model  views: chứa tập tin giao diện (view)

CÂU HỎI, BÀI TẬP 2.1 Tải mã nguồn tạo site tracuudiem

(16)

BÀI 3: ROUTING Mã bài: 22.3

Giới thiệu:

Công việc sau tạo site phải cấu hình Bên cạnh đó, cịn phải định nghĩa route xử lý số yêu cầu đặc biệt bên ứng dụng

Mục tiêu:

 Biết trình xử lý yêu cầu site  Biết chức route site

 Cấu hình cho site CodeIgniter framework  Tạo trang đơn giản

 Đặt tên tập tin, thư mục 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 cập nhật cho dòng lệnh

(17)

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

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

Truy cập lại trang trình duyệt để xem kết 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 nhập nội dung sau:

(18)

B3: Đọc thơng tin cấu hình riêng

Mở tập tin application/views/welcome_message.php cập nhật nội dung sau:

5 Cấu trúc địa chỉ

Địa site theo mô hình MVC có cấu trúc tổng qt sau:

Nếu khơng có method hàm hành động index gọi  controller: lớp đối tượng nhận xử lý yêu cầu

 method: hàm hành động gọi 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

(19)

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 tập tin application/config/routes.php)  method: index

 arguments: khơng có 6 Cấu hình route mặc định

Mở tập tin application/config/routes.php Xóa hết tất cập nhật lại nội dung sau:

Khi địa truy cập tìm thấy tập tin routes.php xử lý theo quy tắc bên routes.php Ngược lại, yêu cầu xử lý theo cấu trúc tổng quát (đã trình bày Mục 3.1)

Với định nghĩa route trên, controller, method arguments truyền truy cập địa tương ứng 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’

(20)

Như phân tích với ví dụ trên, ứng dụng cần phải có controller home với các hàm index view

Tạo tập tin application/controllers/Home.php với nội dung bên

Đã tạo xong controller home với method (hàm hành động) index view Truy cập trang theo địa ví dụ để xem kết

CÂU HỎI, BÀI TẬP

Cập nhật tập tin application/config/routes.php tạo controller để hiển thị kết với địa truy cập tương ứng 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Ủ ĐỀ

http://localhost/ignitersite1/index.php/sach/chude/2 DANH MỤC SÁCH THUỘC CHỦ ĐỀ

http://localhost/ignitersite1/index.php/sach/nxb/6 DANH MỤC SÁCH THUỘC NXB

(21)

GỢI Ý, ĐÁP ÁN  Tập tin routes.php

 Tập tin sach.php

+ Cách 1:

+ Cách 2:

(22)

BÀI 4: CONTROLLER Mã bài: 22.4

Giới thiệu:

Thành phần quan trọng tiếp nhận xử lý yêu cầu controller Mục tiêu:

 Trình bày khái niệm công dụng Controller  Tạo lớp đối tượng kế thừa controller

 Tạo hàm hành động controller  Đặt tên tập tin quy định

Nội dung chính: 1 Khái niệm

Controller lớp đối tượng dẫn xuất từ CI_Controller, có chức tiếp nhận xử lý yêu cầu route chuyển đến Bên controller chứa hàm (hành động) xử lý theo yêu cầu cụ thể

7 Tạo controller

Mỗi controller định nghĩa tập tin đặt thư mục application/ controllers Mỗi controller lớp đối tượng dẫn suất từ CI_Controller

Cú pháp

<?php

defined(‘BASEPATH’) or exit (‘Truy cap trai phep’); class <TênController> extends CI_Controller{

}

Chú ý: Tên controller phải bắt đầu ký tự In Tên tập tin giống với tên controller, có phần mở rộng php

Ví dụ:

Định nghĩa controller TacGia tập tin application/controllers/TacGia.php

8 Tạo hàm hành động

(23)

Truy cập theo địa http://localhost/ignitersite1/index.php/tacgia để xem kết

Tạo thêm hàm hành động cho controller TacGia sau:

9 Tổ chức controller thư mục

Với ứng dụng web lớn, CodeIgniter cho phép nhà phát triển tách/tổ chức controller thư mục Ví dụ: trang/chức quản lý nội dung truy cập theo địa http://localhost/codeignitersite1/quantri

(24)

Bước 2: Tạo controller thư mục application/controllers/quantri CÂU HỎI, BÀI TẬP

4.1 Tạo controller Chude, Nxb, Sach với hàm hành động bên trong, tương tự controller Tacgia xây dựng

(25)

BÀI 5: VIEW Mã bài: 22.5

Giới thiệu:

View thành phần mơ hình MVC, cơng dụng trao đổi liệu với controller hiển thị kết

Mục tiêu:

 Biết khái niệm công dụng view

 Thiết kế view tải view hàm controller  Truyền liệu từ controller đến view

 Truyền liệu từ view đến controller thông qua form  Xử lý liệu nhận từ form

 Đảm bảo an toàn cho người thiết bị Nội dung chính:

1 Khái niệm

View đơn giản trang web một chức (header, footer, sidebar) đặt bên view khác

View khơng gọi trực tiếp, phải tải lệnh bên controller 10 Tạo view

(26)

Trong website có nhiều trang Hầu trang đề có bố cục, chức giống nhau, khác nội dung hiển thị vùng rộng lớn Xét giao diện trên, tài liệu HTML đơn giản sau:

2.1 Tạo view dùng chung

Các trang có bố cục nội dung giống hai thành phần (đã đánh dấu khung chữ nhật) Chúng ta tạo view tương ứng Bước 1: Tạo thư mục application/views/shared

Bước 2: Tạo tập tin application/views/shared/p1.php

(27)

2.2 Tạo view nội dung cho trang

Quy tắc chung: Với controller, tạo thư mục đặt bên application/views Tiếp theo, tạo view đặt bên thư mục vừ tạo Xét controller TacGia mục trước, có hàm index, add edit trang Danh sách tác giả, Thêm tác giả Sửa thông tin tác giả

Bước 1: Tạo thư mục application/views/tacgia

Bước 2: Tạo tập tin application/views/tacgia/index.php để hiển thị nội dung cho hàm index

Lặp lại Bước để tạo tập tin hiển thị nội dung cho hàm add edit 11 Tải view

Cập nhật hàm index controller TacGia để tải view shared/p1.php, shared/p2.php tacgia/index.php

Tương tự vậy, cập nhật hàm _new edit Kiểm tra kết trang theo địa http://localhost/ignitersite1/index.php/tacgia http://localhost/ignitersite1/index.php/tacgia/add http://localhost/ignitersite1/index.php/tacgia/edit/1 12 Truyền liệu đến view

Trong ví dụ bên dưới, truyền danh sách tác giả từ hàm index đến view application/views/tacgia/index.php Hiện tại, chưa truy cập đến CSDL nên sẽ tạo liệu thử dạng mảng

(28)

Bước 2: Xử lý liệu nhận view

Cập nhật nội dung tập tin application/views/tacgia/index.php

Kết có truy cập địa

http://localhost/ignitersite1/index.php/tacgia

13 Form view

Bước 1: Cập nhật hàm add controller TacGia

(29)

form_open(‘tacgia/store’): tạo thẻ form có thuộc tính method= “post” action= “/index.php/tacgia/store” (dữ liệu chuyển đến hàm store controller TacGia)

Bước 3: Cập nhật hàm store controller TacGia

Kiểm tra kết quả: mở trang http://localhost/ignitersite1/index.php/tacgia/add Không nhập tên, click chuột lên nút Submit  Lỗi

Tiếp tục mở lại trang http://localhost/ignitersite1/index.php/tacgia/add Nhập tên, click chuột lên nút Submit  Thành công

CÂU HỎI, BÀI TẬP

5.1 Tạo/cập nhật controller view tương ứng để có trang hiển thị Danh sách chủ để, Danh sách NXB (Tạo liệu thử dạng mảng)

(30)

BÀI 6: MODEL Mã bài: 22.6

Giới thiệu:

Model đối tượng chứa liệu trao đổi controller view Mục tiêu:

 Trình bày khái niệm công dụng Model  Tạo model

 Tải model controller

 Truyền liệu từ model đến view

 Viết hàm truy xuất CSDL model  Đặt tên hàm quy tắc

 Đảm bảo an toàn cho người thiết bị Nội dung chính:

1 Khái niệm

Model lớp đối tượng truy xuất CSDL Ví dụ: để đọc/thêm/xóa/sửa liệu table TacGia, cần tạo model Trong CodeIgniter, model lớp đối tượng dẫn xuất từ CI_Model Mỗi model định nghĩa tập tin, đặt thư mục application/models 2 Tạo model

(31)

14 Định nghĩa hàm model

3.1 Cập nhật hàm GetList (Đọc nhiều dòng liệu)

(32)

3.3 Cập nhật hàm Insert (Thêm dòng liệu)

3.4 Cập nhật hàm Update (Cập nhật dòng liệu)

3.5 Cập nhật hàm Delete (Xóa dịng liệu)

15 Truy xuất CSDL thông qua model controller Cập nhật tập tin application/controllers/tacgia.php

4.1 Thêm hàm khởi tạo

load->helper: tải thư viện chứa hàm hỗ trợ đọc nhanh thông tin url,

uri, … Có thể mở tập tin system/helpers/url_helper.php xem hàm bên

(33)

4.2 Cập nhật hàm index

4.3 Cập nhật tập tin application/views/tacgia/index.php

CÂU HỎI, BÀI TẬP

6.1 Tạo model lại tương ứng với table CSDL bookstore, tương tự tacgia_model thực

(34)

BÀI 7: HOÀN CHỈNH CONTROLLER/VIEW Mã bài: 22.7

Giới thiệu:

Ba thành phần mơ hình MVC phối hợp với trình bày cụ thể rõ ràng

Mục tiêu:

 Biết quy trình truy xuất CSDL controller  Biết quy trình truyền liệu đến view

 Tạo trang truy xuất CSDL  Đặt tên tập tin quy tắc

 Đảm bảo an toàn cho người thiết bị Nội dung chính:

1 Thêm liệu

Cập nhật hàm store torng controller TacGia

16 Cập nhật liệu

(35)

Truy cập địa http://localhost/ignitersite1/index.php/tacgia để xem kết Bước 2: Cập nhật hàm edit controller TacGia

Bước 3: Tạo tập tin application/views/tacgia/edit.php

(36)

17 Xóa liệu

Cập nhật hàm delete controller TacGia

CÂU HỎI, BÀI TẬP

7.1 Hoàn chỉnh controller, view để có trang danh sách/thêm/xóa/sửa liệu bảng ChuDe

7.2 Hồn chỉnh controller, view để có trang danh sách/thêm/xóa/sửa liệu bảng NXB

(37) http://codeigniter.com/userguide3/overview/features.html) eb http://codeigniter.com http://localhost/ignitersite1/index.php/sach/chude/1 http://localhost/ignitersite1/index.php/sach/xem/13412786 http://localhost/ignitersite1/index.php/home/gioithieu http://localhost/ignitersite1/index.php/home http://localhost/ignitersite1/index.php http://localhost/ignitersite1 http://localhost/ignitersite1/index.php/home/lienhe http://localhost/ignitersite1/index.php/sach http://localhost/ignitersite1/index.php/sach/chude/2 http://localhost/ignitersite1/index.php/sach/nxb/6 http://localhost/ignitersite1/index.php/sach/tacgia/9 http://localhost/ignitersite1/index.php/tacgia http://localhost/codeignitersite1/quantri http://localhost/ignitersite1/index.php/tacgia/add http://localhost/ignitersite1/index.php/tacgia/edit/1

Ngày đăng: 10/03/2021, 18:08

Tài liệu cùng người dùng

Tài liệu liên quan