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

Post on 17-Jun-2015

12.363 views 7 download

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

Transcript of 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

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