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

Bài giảng PHP MySQL nâng cao FPT

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 (9.17 MB, 238 trang )

Bài 1
Lập trình website theo mô hình MVC
Cách tổ chức mô hình MVC
Ưu điểm của mô hình MVC trong việc phát triển
ứng dụng web
Cách tạo và gọi hàm theo phong cách mô hình
MVC
Phân biệt khi nào nên forward hoặc chuyển
hướng yêu cầu HTTP
Giới thiệu về framework CakePHP
Mục tiêu
Bài 1 - Lập trình website theo mô hình MVC
2
Giới thiệu mô hình MVC
Cách viết một hàm
Cách chuyển hướng yêu cầu HTTP
Cách sử dụng mô hình MVC
Bài 1 - Lập trình website theo mô hình MVC
3
Mô hình MVC
Bài 1 - Lập trình website theo mô hình MVC
4
`
Browser
Controller
index.php
View
product_list.php
product_add.php
database_error.php
Model


database.php
product_db.php
category_db.php
Data store
HTTP
request
HTTP
response
Mô hình MVC
Model
View
Controller
Khái niệm
Bài 1 - Lập trình website theo mô hình MVC
5
Cú pháp:
Hàm không tham số trả về đối tượng
PDOStatement:
Hàm (function)
Bài 1 - Lập trình website theo mô hình MVC
6
function function_name{[parameterliat]) {
// statements that are executed by the function
}
function get_products() {
global $db;
$query = 1 SELECT * FROM products 1;
$products = $db->guery($guery);
return $products;
}

Hàm một tham số:
Ví dụ
Bài 1 - Lập trình website theo mô hình MVC
7
function delete_product($product_id) {
global $db;
$query = "DELETE FROM products
WHERE productID = 1$product_id'";
$row_count = $db->exec($query);
return $row_count;
}
Hàm bốn tham số:
Ví dụ
Bài 1 - Lập trình website theo mô hình MVC
8
function add_product($category_id, $name, $description,
$price) {
global $db;
$guery = "INSERT INTO products(categorylD,
productCode, productName, listPrice)
VALUES('$category_id', '$code', '$name', '$price')";
$row_count = $db->exec($guery);
return $row_count;
}
Gọi hàm
Bài 1 - Lập trình website theo mô hình MVC
9
//Gọi hàm không tham số và trả về đối tượng PDOStatement
$products = getproducts();
//Gọi hàm một tham số và trả về số lượng dòng đã xóa

$row_count = deleteproduct($product_id);
//Gọi hàm bốn tham số và trả về số dòng đã thêm
$rovr_count = add_product($category_id, $name,
$description, $price);
Danh sách tham số
Tham số
Danh sách đối số
Đối số
Từ khóa global
Một số khái niệm
Bài 1 - Lập trình website theo mô hình MVC
10
Hàm chuyển hướng yêu cầu:
Ví dụ:
Chuyển hướng yêu cầu
Bài 1 - Lập trình website theo mô hình MVC
11
Hàm
Giải
thích
header(
$header)
Gửi
header HTTP tới trình duyệt
header{' Location: .'); // Thư mục hiện tại
header{' Location: '); // Duyệt tới thư mục cha
header(' Location: ./admin'); // Duyệt tới thư mục con
admin
header('Location: error.php');
header('Location: />Không có tham số:

Có tham số:
Chuyển hướng một yêu cầu
Bài 1 - Lập trình website theo mô hình MVC
12
if ($action == 'delete') {
$product_id = $_POST['product_id'];
delete_product($product_id);
header('Location: .');
}
if ($action == 'delete') {
$product_id = $_POST['product_id'];
$category_id = $_POST['category_id'];
delete_product($product_id);
header("Location: .?category_id=$category_id");
}
Chuyển hướng một yêu cầu
Forward một yêu cầu
Các khái niệm
Bài 1 - Lập trình website theo mô hình MVC
13
Trang Product List
Bài 1 - Lập trình website theo mô hình MVC
14
Trang Add Product
Bài 1 - Lập trình website theo mô hình MVC
15
Khái niệm PHP framework
Các framework:
CakePHP
Zend

Symphony
Các framework PHP
Bài 1 - Lập trình website theo mô hình MVC
16
Mô hình MVC:
MODEL – Behaviors
CONTROLLER – Components
VIEW - Helpers
Trang chủ: />Tra cứu và tham khảo:
/>Download: />Diễn đàn CakePHP của VN:
/>CakePHP
Bài 1 - Lập trình website theo mô hình MVC
17
Yêu cầu:
PHP Server: Apache
Database: mySQL
Cài đặt: giải nén file tải về vào thư mục httpdocs
Cấu hình: mở file /app/config
/database.php.default rồi Save as thành
database.php. Sau đó điều chỉnh lại thông số:
Cài đặt và cấu hình CakePHP
Bài 1 - Lập trình website theo mô hình MVC
18
var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'project_name',
'prefix' => ' ',

Lưu ý:
Với user, password, database lần lượt là: tên user,
password và database ở trong MySql.
Tên bảng trong cake nên ở dạng tiếng Anh số nhiều
(vd: users, customers, students, )
Bảng phải có primary key tên là 'id'
Nếu có sử dụng quan hệ trong các bảng vd: user_id
(user không có s và dấu _ cộng id)
Cài đặt và cấu hình CakePHP
Bài 1 - Lập trình website theo mô hình MVC
19
Người sử dụng truy cập vào ứng dụng
Class Router sẽ định tuyến cake gọi class
Controller và một hàm tương ứng trong
Controller đó để xử lý
Controller gọi hàm view
Hàm view gọi layout , element ,helper tương
ứng để trả về nội dung cần hiển thị cho
controller
Controller trả về cho trình duyệt nội dung đó
qua class CakeResponse
Cách thức hoạt động của CakePHP
Bài 1 - Lập trình website theo mô hình MVC
20
Kiến trúc cakePHP
Bài 1 - Lập trình website theo mô hình MVC
21
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC

22
app: chứa mã nguồn ứng dụng
cake: chứa mã nguồn của CakePHP
vendors: chứa ứng dụng của bên thứ 3
plugins: chứa các thành phần mở rộng
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC
23
Config: Chứa file cấu hình hệ thống
Controllers: Chứa các controller và component
Locale: Chứa file ngôn ngữ
Models: Chứa file Model và behavor, datasource
Plugins: Chứa các gói mở rộng
Tmp: Thư mục tạm của ứng dụng
Views: Chứa các file giao diện
Webroot: Chứa tài liệu (hình ảnh,file ), file CSS
, file javascript…
Cấu trúc thư mục chuẩn của
một ứng dụng cakePHP
Bài 1 - Lập trình website theo mô hình MVC
24
Mô hình MVC (Model-View-Controller) giúp tăng
hiệu năng của việc phát triển ứng dụng web
Khi gọi hàm thì thứ tự đối số phải giống thứ tự
tham số và phải cùng kiểu dữ liệu
Sử dụng hàm include để forward yêu cầu từ một
file PHP tới một file khác
Sử dụng hàm header để chuyển hướng một yêu
cầu tới một URL khác

cakePHP là một framework PHP thường được sử
dụng
Tổng kết bài học
Bài 1 - Lập trình website theo mô hình MVC
25

×