Upload
hoc-lap-trinh-web
View
12.363
Download
7
Embed Size (px)
DESCRIPTION
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
Citation preview
Bài 1Lậ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 webCách tạo và gọi hàm theo phong cách mô hìnhMVCPhân biệt khi nào nên forward hoặc chuyểnhướng yêu cầu HTTPGiớ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 MVCCách viết một hàmCá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
Controllerindex.php
Viewproduct_list.phpproduct_add.php
database_error.php
Modeldatabase.php
product_db.phpcategory_db.php
Data store
HTTPrequest
HTTPresponse
Mô hình MVCModelViewController
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ượngPDOStatement:
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 productsWHERE 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ạiheader{' Location: ..'); // Duyệt tới thư mục chaheader(' Location: ./admin'); // Duyệt tới thư mục conadminheader('Location: error.php');header('Location: http://www.murach.com/');
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ầuForward 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 frameworkCác framework:
CakePHPZendSymphony
Các framework PHP
Bài 1 - Lập trình website theo mô hình MVC 16
Mô hình MVC:MODEL – BehaviorsCONTROLLER – ComponentsVIEW - Helpers
Trang chủ: http://cakephp.org/Tra cứu và tham khảo:http://manual.cakephp.org/Download: http://cakephp.org/downloadsDiễn đàn CakePHP của VN:http://cakephpvn.org/forum/
CakePHP
Bài 1 - Lập trình website theo mô hình MVC 17
Yêu cầu:PHP Server: ApacheDatabase: mySQL
Cài đặt: giải nén file tải về vào thư mục httpdocsCấu hình: mở file /app/config/database.php.default rồi Save as thànhdatabase.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ụngClass Router sẽ định tuyến cake gọi classController và một hàm tương ứng trongController đó để xử lýController gọi hàm viewHàm view gọi layout , element ,helper ... tươngứng để trả về nội dung cần hiển thị chocontrollerController 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ủamộ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ụngcake: chứa mã nguồn của CakePHPvendors: chứa ứng dụng của bên thứ 3plugins: chứa các thành phần mở rộng
Cấu trúc thư mục chuẩn củamộ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ốngControllers: Chứa các controller và componentLocale: Chứa file ngôn ngữModels: Chứa file Model và behavor, datasourcePlugins: Chứa các gói mở rộngTmp: Thư mục tạm của ứng dụngViews: Chứa các file giao diệnWebroot: Chứa tài liệu (hình ảnh,file..), file CSS, file javascript…
Cấu trúc thư mục chuẩn củamộ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ănghiệu năng của việc phát triển ứng dụng webKhi 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ệuSử dụng hàm include để forward yêu cầu từ mộtfile PHP tới một file khácSử dụng hàm header để chuyển hướng một yêucầu tới một URL kháccakePHP 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