Giới thiệu phương pháp lập trình hướng đối tượng Object Oriented ProgrammingMục đích bài học phần I: Các khái niệm trong phương pháp hướng đối tượng.. Ứng dụng chỉ bao gồm 3 t
Trang 1GIẢNG VIÊN: VƯƠNG HẢIKHOA CÔNG NGHỆ THÔNG TIN
1
Trang 2Học phần Lập trình Web cung cấp những kiến thức tổng quan về môi trường phát triển ứng dụng PHP và một số thao tác cơ bản khi làm việc với PHP.
Sinh viên được tiếp cận với ngôn ngữ lập trình PHP để xây dựng các ứng dụng web động Tìm hiểu sâu về các câu lệnh, hàm và xử lý lỗi trong vấn đề lập trình.
Ngoài ra, sinh viên còn có thể biết kết nối cơ sở dữ liệu vào web để xây dựng một website hoàn chỉnh.
Mô tả nội dung vắn tắt của học
phần
2
Trang 3Tham gia lớp đầy đủ các buổi học lý thuyết và thực hành.
Tự học, tự nghiên cứu…
Nhiệm vụ của sinh viên
Tài liệu tham khảo
Sử dụng PHP và MySQL thiết kế web động – Nguyễn Trường Sinh – Nhà sách Minh Khai, 2005
Ebook Căn bản PHP – Phạm Hữu Khang – Computer Learning Center
Website tham khảo: http://w3schools.com/php
Nhiều giáo trình và website khác (liên hệ giảng viên cung cấp) 3
Trang 4Chuyên cần : 10%
Kiểm tra thường ky : 20% tổng cộng 100%
Thi kết thúc học phần: 70%
Hình thức thi kết thúc học phần: báo cáo đề tài
Cách đánh giá học phần
4
Trang 5Chương 1: Ngôn ngữ kịch bản PHP
Học phần gồm có 5 đơn vị học trình :
3 lý thuyết + 2 thực hành = 45 tiết lý thuyết + (30x2) tiết thực hành
Tổng cộng: 105 tiết
Tổng quan
5
Trang 6Chương 2: PHP nâng cao
6
Trang 7I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
Mục đích bài học (phần I):
Các khái niệm trong phương pháp hướng đối tượng.
Các đặc tính của phương pháp hướng đối tượng.
Các giai đoạn trong phương pháp hướng đối tượng.
So sánh với phương pháp lập trình hướng thủ tục (Procedure
- oriented programming).
Chương 2 : PHP nâng cao
7
Trang 8I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
1. Giới thiệu OOP
Dựa vào mô hình thế giới thực.
Xây dựng chương trình xung quanh các đối tượng được định nghĩa.
Ứng dụng chỉ bao gồm 3 thành phần: class (lớp), object (đối tượng), method (phương thức).
Chương 2 : PHP nâng cao
Trang 9I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
2. Class (lớp)
Dùng để phân loại các đối tượng.
Là bảng thiết kế của đối tượng.
Gồm các thành phần sau:
Trang 10I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
3. Object (đối tượng)
Là một thể hiện (instance) của một class nào đó.
Tồn tại mà có thể đụng chạm được.
Ví dụ:
Chương 2 : PHP nâng cao
Trang 11I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
3. Object (đối tượng)
Chương 2 : PHP nâng cao
Trang 12I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
3. Object (đối tượng)
Gồm các tính chất sau:
và giá trị của chúng
Ví dụ:
Chương 2 : PHP nâng cao
Trang 13I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
3. Object (đối tượng)
Chương 2 : PHP nâng cao
Trang 14I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
Ví dụ:
Chương 2 : PHP nâng cao
Trang 15I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
Trang 16I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
5. Các tính chất của OOP
Realistic Modeling: mô hình hoá thế giới thực.
Reusability: tính tái sử dụng.
Resilience to change: dễ dàng thay đổi.
Existence as different form: tồn tại ở một hình thái khác.
Chương 2 : PHP nâng cao
Trang 17I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
6. Các giai đoạn của OOP
Analysis: phân tích bài toán, thu thập thông tin.
Design: thiết kế các class dựa trên giai đoạn analysis.
Implement: cài đặt theo bảng thiết kế chi tiết (design) trên một ngôn ngữ lập trình cụ thể.
Chương 2 : PHP nâng cao
17
Trang 18I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
6. Các giai đoạn của OOP
Ví dụ: Bạn đang là thành viên của đội ngũ lập trình ứng dụng cho công ty viễn thông A Bạn được giao thực hiện module
mà nó tiếp nhận và hiển thị thông tin chi tiết của khách hàng gồm: họ tên, tuổi, địa chỉ nhà, số điện thoại.
Giải quyết vấn đề:
Analysis: 1 loại đối tượng là khách hàng
Design: tạo 1 class tên KhachHang, gồm:
Các attribute là: họ tên, tuổi, địa chỉ, số điện thoại
Các method: NhanThongTin và HienThiThongTin
Chương 2 : PHP nâng cao
Trang 19I. Giới thiệu phương pháp lập trình hướng đối tượng (Object Oriented Programming)
Quan tâm đến tính năng và tính
mở rộng của phần mềm.
Quan tâm đến tính năng của phần mềm.
Tiếp cận bài toán gần gũi với thực tế Bài toán phải được đưa về dưới dạng hàm và thủ tục.
Tính tái sử dụng rất cao Tái sử dụng thấp.
Đảm bảo được tính bảo mật và
nhất quản dữ liệu.
Không đảm bảo được vì các thủ tục trong ứng dụng đều có thể truy xuất đến dữ liệu.
Trang 20II Hướng đối tượng trong PHP (Object Oriented Programming)
1 Khái niệm hướng đối tượng
Lập trình hướng đối tượng (Object Oriented Programming hay OOP)
là gì?
Là sử dụng các lớp (Classes), quan hệ (Rilationships), thuộc tính(Properties), và phương thức(Methods) của đối tượng (Object) trong hệ thống để phát triển phần mềm.
Đối tượng (Object): Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ tạo nên một đối tượng Đơn vị này tương đương với một chương trình con và vì thế các đối tượng sẽ được chia thành hai bộ phận chính: phần các phương thức (method) và phần các thuộc tính (property) Trong thực tế, các phương thức là các hàm và các thuộc tính là các biến, các tham số hay hằng nội tại của một đối tượng Các phương thức là phương tiện để sử dụng một đối tượng trong khi các thuộc tính sẽ mô tả đối tượng có những tính chất gì.
Chương 2 : PHP nâng cao
Trang 21II.Hướng đối tượng trong PHP (Object Oriented
Programming)
1. Khái niệm hướng đối tượng
Một lớp được hiểu là một kiểu dữ liệu bao gồm các thuộc tính
và phương thức được định nghĩa từ trước Khác với kiểu dữ liệu thông thường, một lớp là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các phương thức và các thuộc tính
Để có được các đối tượng thì người lập trình OOP cần phải thiết kế lớp của các đối tượng đó bằng cách xây dựng các thuộc tính và các phương thức có các đặc tính riêng.
Mỗi một phương thức hay một thuộc tính đầy đủ của một lớp còn được gọi tên là một thành viên (member) của lớp đó.
Chương 2 : PHP nâng cao
21
Trang 22II Hướng đối tượng trong PHP (Object Oriented
Programming)
thể có các ứng xử khác nhau cho dù cùng một hành động Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi
mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn.
Ví dụ: hai đối tượng "hinh_vuong" và "hinh_tron" thì có một phương thức chung là "chu_vi" Khi gọi phương thức này thì nếu đối tượng là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là "hinh_tron".
Chương 2 : PHP nâng cao
Trang 23II.Hướng đối tượng trong PHP (Object Oriented
Programming)
3. Tính kế thừa (Inheritance)
Cho phép tạo ra quan hệ có thứ bậc giữa các lớp sử dụng lớp con Lớp con này kế thừa tất cả các thuộc tính và phương thức của lớp cha mà nó kế thừa.
Ví dụ:
Chương 2 : PHP nâng cao
23
Trang 24II. Hướng đối tượng trong PHP (Object Oriented Programming)
Sử dụng: Tạo biến đối tượng: $tên_object = new tên_class([giá
trị khởi tạo]);
Chương 2 : PHP nâng cao
Trang 25II.Hướng đối tượng trong PHP (Object Oriented
$this->attribute = …;
}
… }
$a = new class_name(…);
Trang 26II.Hướng đối tượng trong PHP (Object Oriented
- clockIn()
- clockOut()
Trang 27II.Hướng đối tượng trong PHP (Object Oriented
var $startPoint = 0;
function increment( ) { $this->count++;
} }
$aCounter = new Counter;
$aCounter->increment( );
echo $aCounter->count; // prints 1
$aCounter->count = 101;
Trang 28II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
a. Trường (field)
Thuộc tính của một lớp bao gồm các biến, các hằng hay tham
số nội tại của lớp đó Vai trò quan trọng của thuộc tính là các biến, vì nó có thể bị thay đổi trong quá trình hoạt động của đối tượng Các thuộc tính có thể được xác định các kiểu: public, private, protected, final và static.
Ví dụ:
Chương 2 : PHP nâng cao
Trang 29II.Hướng đối tượng trong PHP (Object Oriented
Cú pháp: $object ->field;
Ví dụ: lấy các thuộc tính của class Employee
Chương 2 : PHP nâng cao
29
Trang 30II.Hướng đối tượng trong PHP (Object Oriented
Cú pháp: $object ->field;
Ví dụ: sử dụng các thuộc tính của class Employee
Chương 2 : PHP nâng cao
Trang 31II.Hướng đối tượng trong PHP (Object Oriented
$hung= new hoso (“Vũ Huy Hùng","25/7/1993");
echo "Họ tên: " $hung->ho_ten “, Ngày sinh: "
$hung->ngay_sinh ;
?>
Trang 32II. Hướng đối tượng trong PHP (Object Oriented Programming)
4 Lớp (class)
a Trường (field)
Ví dụ: thiết lập thuộc tính cho trường $name
function setname($name)
{ $this->name = $name;
}
Ví dụ: lấy thuộc tính của trường $name
Trang 33II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
a. Trường (field)
Ví dụ: thiết lập và lấy thuộc tính
của trường $name
Chương 2 : PHP nâng cao
33
Trang 34II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Phương thức: là một hàm nội tại của lớp, tùy theo đặc tính
mà người lập trình định nghĩa kiểu trả về: public, private… tương tự như class và thuộc tính.
Cú pháp:
Chương 2 : PHP nâng cao
Trang 35II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Ví dụ: tạo phương thức tính lương
Gọi phương thức:
Chương 2 : PHP nâng cao
35
Trang 36II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Các phương thức đặc biệt:
Hàm dựng (constructor) là hàm được dùng để cài đặt các giá tri ban đầu cho các biến nội tại và đôi khi còn dùng để khai báo về việc sử dụng bộ nhớ.
Hàm hủy (destructor) là hàm dùng vào việc làm sạch bộ nhớ
và hủy bỏ tên của một đối tượng sau khi đã dùng xong, trong đó có thể bao gồm cả việc xóa các con trỏ nội tại và trả về các phần bộ nhớ mà đối tượng đã dùng.
Chương 2 : PHP nâng cao
Trang 37II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Các phương thức đặc biệt:
Cú pháp hàm dựng (constructor)
Chương 2 : PHP nâng cao
37
Trang 38II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Các phương thức đặc biệt:
Cú pháp hàm dựng (constructor), ví dụ:
Chương 2 : PHP nâng cao
Trang 39II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Các phương thức đặc biệt:
Cú pháp hàm hủy (destructor)
Function destructor(argument1, argument2, argumentN )
{
//Code function }
Chương 2 : PHP nâng cao
39
Trang 40II.Hướng đối tượng trong PHP (Object Oriented
Programming)
4. Lớp (class)
b. Phương thức (method)
Các phương thức đặc biệt:
Cú pháp hàm hủy (desstructor), ví dụ:
Chương 2 : PHP nâng cao
Trang 41II.Hướng đối tượng trong PHP (Object Oriented
Programming)
5. Sử dụng autoload
Khi chúng ta tạo ra các thư viện class khác nhau như employee, book, event…để gọi các class đó ta sử dụng require_one(); hoặc dùng phương thức autoload($class);
Ví dụ:
Chương 2 : PHP nâng cao
41
Trang 42III Form
1 Form là gì?
Một trong những ứng dụng quan trọng của PHP đó là giúp tương
tác xử lý dữ liệu trên form của người sử dụng Mục đích là giúp cập nhật thông tin một cách linh hoạt và dễ dàng quản lý chúng bởi sự kết hợp tuyệt vời của cơ sở dữ liệu.
Form (hay còn gọi là biểu mẫu): là nơi cho phép ta tập hợp các
kiểu dữ liệu từ trang web và gửi lên server xử lý thông qua các trường nhập liệu như: text field, checkbox, radio button, list/menu, button,…
Form chứa các đối tượng giúp cho người dùng giao tiếp với server.
Trang 43III. Form
2 Xử lý form
GET và POST là 2 trong số 4 phương thức gửi dữ liệu người
dùng lên server dưới dạng từng cặp “biến = giá trị” Hai phương thức còn lại là COOKIEs và SESSION
a Phương thức GET
Dữ liệu gửi từ trình duyệt lên qua phương thức GET là phần dữ
liệu được nhập trực tiếp theo sau địa chỉ URL do trình duyệt gửi lên, được phân biệt với tên file script bằng dấu hỏi chấm (?)
Ví dụ: khi ta gõ vào trình duyệt địa chỉ URL sau:
Trang 44III. Form
2 Xử lý form
a Phương thức GET
Ngoài ra ta cũng có thể gửi lên máy chủ nhiều cặp biến = giá trị
(ngăn cách nhau bởi dấu & ) như sau:
http://kienhau.com/topic.php?ID=16 &user=trung&pass=1234
tức là 3 cặp biến sau: ID = 16 , user = trung , pass = 1234 sẽ được gửi lên server.
Khi trình duyệt gửi các thông tin này lên máy chủ, PHP sẽ tự
động sinh ra một mảng có tên là $_GET [] hoặc
$HTTP_GET_VARS []để nắm giữ tất cả cặp biến và giá trị đó, trong đó, chỉ số của mảng chính là một chuỗi mang tên của tên biến và giá trị của chỉ số đó chính là giá trị của biến do trình duyệt gửi lên.
Chương 2 : PHP nâng cao
Trang 45III. Form
2. Xử lý form
a. Phương thức GET
Theo ví dụ trên, PHP sẽ tự động sinh ra một mảng $_GET []
như sau:
$_GET["ID"] = 16 // tương ứng với cặp ID=16
$_GET["user"] = trung // tương ứng với cặp user=trung
$_GET["pass"] = 1234 // tương ứng với cặp pass=1234
Nhận dữ liệu thông qua biến toàn cục của php:
$_GET[“Tên_điều_khiển”]
$_REQUEST[“Tên_điều_khiển”]
Chương 2 : PHP nâng cao
45
Trang 46III Form
2 Xử lý form
=“POST”
số chính là tên của các phần tử trong form (các thẻ input, select có thuộc tính name) và giá trị là nội dung giá trị do người sử dụng nhập vào các phần tử có tên tương ứng.
$_POST[“Tên_điều_khiển”]
$_REQUEST[“Tên_điều_khiển”]
Chương 2 : PHP nâng cao
Trang 47III. Form
2. Xử lý form
b. Phương thức POST
Password :< input type ="password" name ="T2" size ="20"></ p >
< p > Sex : < Select name ="sex">
< option value = 1 > Male </ option >
< option value = 0 > Female </ option >
$_POST["T1"] = Minh
$_POST["T2"] = 123456
$_POST["sex"] = 1
Trang 48 Có thể giả lập phương thức GET để truyền dữ liệu mà không cần thông qua FORM.
Người dùng có thể bookmark địa chỉ URL.
o Nhược điểm:
Không thích hợp để truyền dữ liệu có tính bảo mật.
Dung lượng dữ liệu truyền đi có giới hạn (tối đa là 100 ký tự).
URL submit bị nhìn thấy và được lưu lại trên Server.
Phương thức POST:
o Ưu điểm:
Bảo mật hơn phương thức GET vì tham số truyền đi được ẩn bên trong form.
Không giới hạn dữ liệu truyền đi.
o Nhược điểm:
Có thể gây ra lỗi nếu người dùng muốn quay lại trang kết quả (khi nhấn nút back, hoặc refresh) do bị exprired.
Dữ liệu có thể không truyền đi được do vấn đề Security.
Kết quả trang web trả về không thể bookmark
Chương 2 : PHP nâng cao
Kết luận
Hai phương thức đều có
ưu và nhược điểm riêng Vì thế khi dùng, chúng ta nên biết lúc nào dùng cho tốt và an toàn nhất.