25
Bài 1 Lập trình website theo mô hình MVC

Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 1: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Bài 1Lập trình website theo mô hình MVC

Page 2: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 3: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 4: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 5: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Mô hình MVCModelViewController

Khái niệm

Bài 1 - Lập trình website theo mô hình MVC 5

Page 6: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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;

}

Page 7: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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;

}

Page 8: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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;

}

Page 9: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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);

Page 10: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 11: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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/');

Page 12: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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");

}

Page 13: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 14: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Trang Product List

Bài 1 - Lập trình website theo mô hình MVC 14

Page 15: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Trang Add Product

Bài 1 - Lập trình website theo mô hình MVC 15

Page 16: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 17: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 18: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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' => ' ',

Page 19: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 20: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 21: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

Kiến trúc cakePHP

Bài 1 - Lập trình website theo mô hình MVC 21

Page 22: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 23: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 24: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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

Page 25: Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web

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